Ember Handlebars link-to vs linkTo

时间:2013-11-29 18:18:27

标签: ember.js handlebars.js

当您查看许多较旧的(Pre 1.0)Ember代码时,Handlebars助手似乎是{{#linkTo}}(例如,参见2013年1月的this SO帖子)。现在,该方法似乎是{{#link-to}},基于official Ember docs

我找不到辅助方法何时改变的提及。但我只是在使用Ember 1.2和Handlebars 1.1.2的应用程序中尝试了{{#link-to}}{{#linkTo}},并且都按预期工作。

两个问题。这种变化何时发生?我在Handlebars changelogs或任何提及它的内容中都找不到它。 2,我认为既然{{#link-to}}是目前文档中的内容,那就是新的方式。但是没有弃用通知。是否有计划不再支持{{#linkTo}}?如果是的话,何时?哪个Ember / Handlebars版本?对于奖励积分,请链接到一篇文章,讨论该决定背后的理由。

2 个答案:

答案 0 :(得分:6)

你不会在Handlebars的更改日志中找到关于link-to的任何内容,因为它是Ember的助手类,而不包含在主Handlebars库中。

根据blog post for RC8,旧语法已被“软弃用”。旧方法标有@deprecated in the source但即使使用也不记录任何内容(即使设置Ember.ENV.RAISE_ON_DEPRECATION也不记录)。

你也会看到那个旧版本作为新版本的直接别名保留,没有真正实现它自己。

Ember.Handlebars.registerHelper('linkTo', Ember.Handlebars.helpers['link-to']);

由于他们计划使用semantic versioningas said in the post for the 1.0 release)作为他们的版本,他们无法真正删除此帮助程序,直到它们达到2.0。

答案 1 :(得分:2)

linkTo和bindAttr在this拉取请求中更改为link-to和bind-attr。使用带连字符的表单,因为它更接近web components自定义元素语法。因此,如果您当前的版本中有可用,请使用带连字符的形式。