2013-11-09 199 views
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}}显示为预期的,但是当我尝试把{{链接}}在href我从铁路由器说

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

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

回答

5

引擎盖下铁路由器注册handelbars帮手:

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

简单地改变场link不同的名称,比如my_link

+0

这做到了。谢谢! –

+0

这是正式记录在哪里?我希望我早点知道这件事! – ecbrodie

+0

查看Iron-Router源代码是有益的。 –

4

由于@perhelium提到铁路由器已经指定了一个名为“链接”

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

帮手为了访问名为“Link”的项目在你的JSON对象,你需要明确地指JSON对象本身。

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

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

+0

谢谢,这是一个更好的解决方案,然后将每个收集项目重命名为“my_link”。 – nooitaf