4

我正在为我的流星项目使用铁路由器,一切都很顺利,但我遇到了一些奇怪的行为。

我为看起来像这样的项目列表设置了一个循环。

{{#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?" 

任何帮助或建议将不胜感激。

4

2 回答 2

5

在引擎盖下 Iron-Router 注册 handelbars 助手:

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

只需将字段更改link为不同的名称,例如my_link.

于 2013-11-09T17:26:34.057 回答
4

正如@perhelium 提到的,Iron-Router 指定了一个名为“link”的助手

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

为了访问 JSON 对象中名为“链接”的项目,您需要显式引用 JSON 对象本身。

所以你的线:<a href="{{link}}">Click here!</a>

需要指定为<a href="{{this.link}}">Click here!</a>

于 2014-01-20T18:46:38.383 回答