为什么我需要在模板中为模板中的所有属性添加前缀。?

时间:2015-02-11 22:45:38

标签: ember.js ember-cli

要访问模板中的模型属性,我只是这样做:

{{name}}

正如guide

中所述

我现在转到ember-cli@0.1.12,with ember @ canary(1.12.0-beta.1 + canary.50206d0f),jquery @ 2.1.3,handlebars@2.0.0,不知何故我发现我被迫用model.为所有属性添加前缀。直接属性会发生这种情况,例如:

{{model.name}}

绑定属性,例如:

{{view "verifiedEmail"  emailBinding="model.email" verifiedBinding="model.isEmailVerified"}}

这是预期的吗?这记录在哪里?这真的是一个皮塔饼,因为这意味着我的模板发生了很多变化。

我记得在某个地方读过对象代理已被弃用,但我找不到对它的引用了。

2 个答案:

答案 0 :(得分:1)

显然,这是Ember 2.0(https://github.com/emberjs/rfcs/pull/15

过渡计划的一部分
  

不是直接引用模型属性(或在此引用),而是将它们称为model.propName。   同样,如果从ObjectController迁移到移动到组件的计算属性,则需要依赖于model.propName。   在这两种情况下,简短版本是您不能再依赖ObjectController或ArrayController的代理行为,但您可以通过为模型添加前缀来补救这种情况。到物业名称。

答案 1 :(得分:1)

The Road to Ember 2.0可路由组件部分解释了为何需要进行这些更改。

特别注意要点:

  

在这两种情况下,短版本都是您不能再依赖的了   代理ObjectController或ArrayController的行为,但你可以   通过为模型添加前缀来纠正这种情况。到物业名称。

另请注意,如果您的应用程序中有很大一部分需要通过这些更改进行重构,那么Ember核心团队已声明:

  

我们还将为Ember 2.0应用程序提供可选插件   恢复现有行为。

因此,如果麻烦太多,你可能不需要立即重构。