Ember.js:已计算 属性 的模型未在更改时在组件的引用中呈现
Ember.js: Computed property of model not rendering in component's reference on change
我遇到的问题在 this jsbin 中非常清楚地表达了,其中计算的 属性 isFinito 在模板中没有随着 isFinished 的值而改变。这是组件的一个特性,它们不能听取传递给它们的模型的计算属性吗?如果是这样,我该如何实现。这似乎是一个非常普遍的需求,但无论我对此进行了多少搜索,我都找不到可以重复或解决此问题的东西。
这实际上与观察者无关 - 原因是 属性 访问。考虑以下行:
return (this.isFinished ? "SI" :"NON");
这是 总是 去 return NON
因为 this.isFinished
是 总是 falsy (它是 undefined
)。 Ember-Data 不会将数据直接放在模型实例上,它只是将计算属性放在那里。 this.isFinished
不存在。如果你使用 Ember 的 get()
方法,它工作正常:
return (this.get('isFinished') ? "SI" :"NON");
作为一般规则,总是 在处理 Ember 对象时使用 get()
。我知道一开始有点烦人,但你会习惯它,它有助于避免很多问题。
我遇到的问题在 this jsbin 中非常清楚地表达了,其中计算的 属性 isFinito 在模板中没有随着 isFinished 的值而改变。这是组件的一个特性,它们不能听取传递给它们的模型的计算属性吗?如果是这样,我该如何实现。这似乎是一个非常普遍的需求,但无论我对此进行了多少搜索,我都找不到可以重复或解决此问题的东西。
这实际上与观察者无关 - 原因是 属性 访问。考虑以下行:
return (this.isFinished ? "SI" :"NON");
这是 总是 去 return NON
因为 this.isFinished
是 总是 falsy (它是 undefined
)。 Ember-Data 不会将数据直接放在模型实例上,它只是将计算属性放在那里。 this.isFinished
不存在。如果你使用 Ember 的 get()
方法,它工作正常:
return (this.get('isFinished') ? "SI" :"NON");
作为一般规则,总是 在处理 Ember 对象时使用 get()
。我知道一开始有点烦人,但你会习惯它,它有助于避免很多问题。