假设company
是路线中某处定义的承诺。在我的控制器中,我根据这个承诺定义了一个计算属性breadcrumb
:
breadcrumb: function() {
return [
...
{name: this.get("company").get("name"), url: "#company/" + this.get("company").get("id")},
...
]
}.property("company")
在我的模板中,即使承诺结算,面包屑也不会更新。
{{format-breadcrumb breadcrumb}}
我也试过observes
但结果是一样的。获得我想要的结果的唯一方法是观察company
...
}.property("company.id")
这是基于承诺创建属性的唯一方法吗?我想观察承诺本身,而不是一个特定的属性......
我使用的是ember 1.7和ember-data beta 10。
由于
答案 0 :(得分:1)
我的建议将始终取决于您关注的属性:
}.property('company.id', 'company.name')
因为那些会影响面包屑的东西。如果承诺加载并且这些属性稍后更改,您是否希望面包屑过时(双关语不可避免)
替代将(另外)观察promise生命周期属性:
所以:
}.property('company.isFulfilled')
请参阅http://emberjs.com/api/classes/Ember.PromiseProxyMixin.html
额外的想法,(我)更喜欢:
this.get('company.name')
在:
this.get('company').get('name')