如果 object 键是 PascalCase,则 ember 中嵌套 objects 的属性不会触发

Properties on nested objects in ember doesn't fire if the object key was in PascalCase

这是一个为什么会发生的问题

如标题所示,如果我有一个 PascalCase object 键,当模型属性更改时,它的自定义属性将不会触发

这是一个例子

App.CustomModel = Ember.Object.extend({
  workProp: function() {
    return this.get('work.val');
  }.property('work.val'),
  wontWorkProp: function() {
    return this.get('WontWork.val');
  }.property('WontWork.val')
});

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return App.CustomModel.create({
      work: {
        val: 'Bar'
      },
      WontWork: {
        val: 'Bar'
      }
    });
  }
});

和 hbs

<h2>This works</h2>
<div>
  {{model.workProp}}
  {{model.work.val}}
  {{input value=model.work.val}}
</div>
<h2>This doesn't</h2>
<div>
  {{model.wontWorkProp}}
  {{model.WontWork.val}}
  {{input value=model.WontWork.val}}
</div>

Fiddle: http://jsbin.com/lukahogeye/2/edit?html,js,output

知道为什么吗?

我在 ember github 的问题列表中发布了这个问题。这是一个可能在未来修复的错误

https://github.com/emberjs/ember.js/issues/10414