由于您已经在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。
希望能帮助到你。