我正在使用.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来过滤数据)。 在这里,我无法根据过滤条件计算总记录。
答案 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();
}
...
希望它有所帮助。