Ember 1.12 现在要求我使用 mode.propertyName 而不是直接访问属性
Ember 1.12 now requiring me to use mode.propertyName rather than accessing properties directly
刚升级到 1.12,我有一个项目路线 returns 来自商店的单个项目,以前我可以像 {{projectName}}
一样直接访问该模型的属性,但现在我必须使用 {{model.projectName}}
。任何人都可以阐明发生了什么事吗?
Link-从我的项目路线:
{{#link-to 'project.details' project.id title="Go to project details"}}
项目路径中的模型挂钩:
model: function(params) {
var record = this.store.getById('project', params.project_id)
if(record) {
return record.reload()
} else {
return this.store.find('project', params.project_id)
}
}
您是否为项目路由定义了控制器?
我猜你可能依赖于为你生成的 Ember.ObjectController
,而 Ember 现在正在为你生成常规的 Ember.Controller
。
如果是这种情况,您可以通过为项目路由定义自己的控制器来恢复旧行为。如果您使用 ember-cli:
// app/controllers/projects.js
import Ember from 'ember';
export default Ember.ObjectController.extend({
});
然而...
ObjectController
,以及您期望的代理行为已被弃用,并将在 Ember 2.0 中删除。我建议以后使用 Ember.Controller
和 model.property
。
您可以在 http://emberjs.com/deprecations/v1.x/#toc_objectcontroller
阅读更多相关信息
刚升级到 1.12,我有一个项目路线 returns 来自商店的单个项目,以前我可以像 {{projectName}}
一样直接访问该模型的属性,但现在我必须使用 {{model.projectName}}
。任何人都可以阐明发生了什么事吗?
Link-从我的项目路线:
{{#link-to 'project.details' project.id title="Go to project details"}}
项目路径中的模型挂钩:
model: function(params) {
var record = this.store.getById('project', params.project_id)
if(record) {
return record.reload()
} else {
return this.store.find('project', params.project_id)
}
}
您是否为项目路由定义了控制器?
我猜你可能依赖于为你生成的 Ember.ObjectController
,而 Ember 现在正在为你生成常规的 Ember.Controller
。
如果是这种情况,您可以通过为项目路由定义自己的控制器来恢复旧行为。如果您使用 ember-cli:
// app/controllers/projects.js
import Ember from 'ember';
export default Ember.ObjectController.extend({
});
然而...
ObjectController
,以及您期望的代理行为已被弃用,并将在 Ember 2.0 中删除。我建议以后使用 Ember.Controller
和 model.property
。
您可以在 http://emberjs.com/deprecations/v1.x/#toc_objectcontroller
阅读更多相关信息