Рули+Метеор+утюг-роутер

Я использую iron-router для своего метеорного проекта, и все шло хорошо, но я столкнулся с каким-то странным поведением.

У меня есть цикл, настроенный для списка элементов, который выглядит примерно так.

{{#each list_items}}
  <div>{{user.username}}
    <a href="{{link}}">Click here!</a>
  </div>
{{/each}}

Объект JSON для моего пользователя выглядит примерно так:

{
  user: {
      username: jdoe
    },
  images: {
    low-res-url: http://example.com
  },
  link: http://example.com/profile
}

Теперь {{user.username}} отображается, как и ожидалось, но когда я пытаюсь поместить {{link}} в href, я получаю сообщение об ошибке от iron-router

"You called Router.path for a route named undefined but that that route doesn't seem to exist. Are you sure you created it?" 

Любая помощь или совет будут оценены.


person Kris Hamoud    schedule 09.11.2013    source источник


Ответы (2)


Под капотом Iron-Router прописывает хелпер руля:

Handlebars.registerHelper('link', function (options) {                          
  ...
}); 

Просто измените поле link на другое имя, например my_link.

person Kuba Wyrobek    schedule 09.11.2013
comment
Это сделало это. Спасибо! - person Kris Hamoud; 09.11.2013
comment
Где это официально зафиксировано? Если бы я знал это раньше! - person ecbrodie; 29.01.2014

Как упоминал @perhelium, Iron-Router указал помощника с именем «ссылка».

Handlebars.registerHelper('link', function (options) {...});

Чтобы получить доступ к элементу с именем «ссылка» в вашем объекте JSON, вам необходимо явно указать сам объект JSON.

Итак, ваша линия: <a href="{{link}}">Click here!</a>

Необходимо указать как <a href="{{this.link}}">Click here!</a>

person joshorig    schedule 20.01.2014
comment
Спасибо, это лучшее решение, чем переименование каждого элемента коллекции в my_link. - person nooitaf; 18.03.2014