由于您已经在IndexRoute
模型挂钩中获取记录,这将content
在返回记录时设置控制器的属性,因此您应该在控制器中访问控制器的content
属性并观察它的更改:
App.IndexController = Ember.ArrayController.extend({
total: function() {
return this.get('content.length');
}.property('content.length')
});
在这里查看您的工作 jsfiddle。
编辑
如果你想contacttype
在你的控制器中过滤,你不应该已经在路由模型钩子中过滤,而是返回你拥有的所有记录:
...
model: function() {
return App.Person.find();
}
...
然后在你的控制器中过滤:
App.IndexController = Ember.ArrayController.extend({
total: function() {
return this.get('content.length');
}.property('content.length'),
totalContactType1: function() {
return this.get('content').filterProperty('contacttype', 1).get('length');
}.property('content.@each.contacttype'),
totalContactType2: function() {
return this.get('content').filterProperty('contacttype', 2).get('length');
}.property('content.@each.contacttype')
});
这里是另一个 jsfiddle。
希望能帮助到你。