Ember.js 为什么我需要在模板中的所有属性前面加上model。?

Ember.js 为什么我需要在模板中的所有属性前面加上model。?,ember.js,ember-cli,Ember.js,Ember Cli,要访问模板中的模型属性,我只需执行以下操作: {{name}} 正如在报告中所解释的那样 我现在搬到了灰烬-cli@0.1.12具有ember@canary(1.12.0-beta.1+金丝雀50206d0f),jquery@2.1.3, handlebars@2.0.0,不知何故,我发现自己不得不在所有属性前面加上model.。直线特性会发生这种情况,例如: {{model.name}} {{view "verifiedEmail" emailBinding="model.email"

要访问模板中的模型属性,我只需执行以下操作:

{{name}}
正如在报告中所解释的那样

我现在搬到了灰烬-cli@0.1.12具有ember@canary(1.12.0-beta.1+金丝雀50206d0f),jquery@2.1.3, handlebars@2.0.0,不知何故,我发现自己不得不在所有属性前面加上
model.
。直线特性会发生这种情况,例如:

{{model.name}}
{{view "verifiedEmail"  emailBinding="model.email" verifiedBinding="model.isEmailVerified"}}
和绑定属性,如:

{{model.name}}
{{view "verifiedEmail"  emailBinding="model.email" verifiedBinding="model.isEmailVerified"}}
这是预期的吗?这在哪里有记录?这确实是一个pita,因为这意味着我的模板中有很多更改


我记得在某个地方读到过一篇文章,说对象代理已经被弃用了,但我再也找不到它的引用了。

显然,这是到Ember 2.0()的过渡计划的一部分

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


的可路由组件部分解释了为什么需要进行这些更改

请特别注意这一点:

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

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

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


因此,如果重构太麻烦的话,您可能不需要立即重构。

谢谢,我就是在这里读到的。但我有点困惑:首先,这些更改应该是渐进的,并且基于弃用,而不是完全停止工作:我们计划在Ember 1.12中获得对可路由组件的支持,同时弃用可路由控制器。我们计划在Ember 2.0中取消对可路由控制器的支持。“Deprecate”是指,而不是“remove”。第二,在某些地方,我收到了一个弃用警告,但不是所有的地方。也许弃用警告对部分不起作用?关于你关于不需要立即重构的评论:我确实需要,因为目前它不起作用。不知道插件何时可用。回到旧版本的余烬可能会唤醒其他守护进程……因为您使用的是金丝雀构建,所以这可能是意外的回归。我认为你应该在GitHub上为ember提交一个问题。