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.Controllermodel.property

您可以在 http://emberjs.com/deprecations/v1.x/#toc_objectcontroller

阅读更多相关信息