所以我在使用 ember 数据和 RESTAdapter 的 ember.js 应用程序中基本上有以下两个模型。
App.JobsController = Ember.ArrayController.extend({
completedCount: function() {
return 0; //Doesn't matter what I return here.
}.property('content.@each.state')
});
App.Job = DS.Model.extend({
transactions: DS.hasMany('App.Transaction'),
state: function() {
return 0; //Doesn't matter what I do here
}.property('transactions.@each.transactionType')
});
App.Transaction = DS.Model.extend({
job: DS.belongsTo('App.Job'),
transactionType: DS.attr('number')
});
我遇到的问题是存在transactions.@each.transactionType
以下异常的原因:
"Attempted to handle event `becomeDirty` on <App.Transaction:ember462:1> while in state rootState.loaded.materializing.firstTime. Called with undefined"
我在问题队列或堆栈溢出的其他任何地方都找不到对此的任何引用。我究竟做错了什么?
更新
所以我做了更多的调查,并没有在我的原始帖子中说得足够清楚。我已经更新了代码以反映它。
1)我在计算属性中做什么并不重要。仅仅拥有它们就会导致异常。
2) 仅当存在另一个依赖于原始计算属性的计算属性时才会发生异常。(希望这是有道理的)
所以在上面的例子中 JobsController 有一个基于 Job 模型的计算属性的计算属性。