.findQuery()。get('length')每次给出结果为0

时间:2013-08-11 08:37:00

标签: ember.js ember-data

我正在使用.findQuery()。get('length')来获取模型中可用于特定过滤的记录总数。

但每次将结果显示为0。

我列出了我的代码here

    total:function(){ 
        return App.Person.query({ contacttype: 1 }).get('length'); 
    }.property('@each.isLoaded')

我尝试使用.find做同样的事情,但它仍然显示相同的结果: 请检查此link

如何根据过滤标准计算记录长度? 请检查link 在这里,我试图计算接触类型的长度。 有谁能告诉我如何计算它?

现在,我已将我的最后一个小提示更新为this。 如果我的模型记录基于过滤而发生变化,如何计算总记录数。

请参考this(点击type1和type2来过滤数据)。 在这里,我无法根据过滤条件计算总记录。

1 个答案:

答案 0 :(得分:1)

由于您已经在IndexRoute模型钩子中获取记录,这将在返回记录时设置控制器的content属性,因此您应该在控制器中访问控制器的{{1}相反,也可以观察它的变化:

content

请参阅here您工作的jsfiddle。

修改

如果要在控制器中过滤App.IndexController = Ember.ArrayController.extend({ total: function() { return this.get('content.length'); }.property('content.length') }); ,则不应在路径模型挂钩中进行过滤,而应返回所有记录:

contacttype

然后在控制器中过滤:

...
model: function() {
  return App.Person.find();
}
...

Here another jsfiddle

希望它有所帮助。

相关问题