gpt4 book ai didi

ember.js - Ember - 观察与属性(property)冲突

转载 作者:行者123 更新时间:2023-12-03 06:50:18 24 4
gpt4 key购买 nike

我的 Controller 中有以下 Prop

App.TeamController = Ember.ObjectController.extend(
involvedProjectTeams: (->
return @get("content.projectTeams").filter (projectTeam, index, enumerable) ->
projectTeam.get("sdeScopingWeeks") isnt 0
).property("content.projectTeams.@each.sdeScopingWeeks")
notInvolvedProjectTeams: (->
return @get("content.projectTeams").filter (projectTeam, index, enumerable) ->
return projectTeam.get("sdeScopingWeeks") is 0
).observes("content.projectTeams.@each.sdeScopingWeeks")
)

然后,我迭代基础模板中的volvedProjectTeams 和notInvolvedProjectTeams。我收到以下错误:

Uncaught TypeError: Object function () {
return this.get("content.projectTeams").filter(function(projectTeam, index, enumerable) {
return projectTeam.get("sdeScopingWeeks") === 0;
});
} has no method 'addArrayObserver'

为什么 property() 按预期工作但观察会抛出错误?

谢谢!!

最佳答案

来自 Ember 的指南

In a nutshell, computed properties let you declare functions as properties. You create one by defining a computed property as a function, which Ember will automatically call when you ask for the property. You can then use it the same way you would any normal, static property.

因此,如果您想访问模板中的某些内容,它应该是一个属性。

观察者只会返回函数,因此无法在模板中访问。这就是为什么您在访问 notInvolvedProjectTeams 时收到错误的原因,它只是一个函数而不是属性。

也将其定义为计算属性,以便您可以在模板中访问它们。

P.S: 您可以使用 ember 的 reduceCompulated 来定义这些属性。

关于ember.js - Ember - 观察与属性(property)冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21453341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com