angularjs ng-repeat: limitTo not limiting object loop
angularjs ng-repeat: limitTo not limiting object loop
我想收集有限制的过去聊天记录,但这会打印出所有聊天记录。
<div ng-repeat="(key, value) in chats|limitTo:10">
<a href="" ng-click="ind(key, value);$event.preventDefault()" class="list-group-item">
<span class="badge">{{value.time}}</span>
<i class="fa fa-fw fa-calendar"></i> {{value.partner}}
</a>
</div>
这是控制器中的代码。
$scope.chats = null;
var chats = {}
var id = $store.get('doctor_id');
var d = new Date();
doctorFactory.getChatRooms(id).then(function(x){
for (var i in x){
chats[i] = { partner: x[i] }
}
$scope.chats = dateService.doEquation(chats, d);
console.log($scope.chats);
}).catch(function(err){
console.log(err);
});
console.log($scope.chats)
打印出一系列对象:
2016021085524: Object
clock: "10:15"
date: "02/10/2016"
partner: "Magruder_Douglas"
time: "0 years ago"
2016021085622: Object
clock: "10:21"
date: "02/10/2016"
partner: "Magruder_Douglas"
time: "0 years ago"
限制不适用于
对象,为此您需要实现自己的自定义过滤器:
app.filter('objLimitTo', [function(){
return function(obj, limit){
var keys = Object.keys(obj);
if(keys.length < 1) return [];
var ret = new Object();
var count = 0;
angular.forEach(keys, function(key, arrayIndex){
if(count >= limit) return false;
ret[key] = obj[key];
count++;
});
return ret;
};
}]);
我只从SO那里获得了这个解决方案..虽然现在找不到原始答案链接...
此解决方案确实有效,但是。参考
angular.module('app', []).controller('homeCtrl', function($scope) {
$scope.limit = 3;
$scope.expand = function(limit) {
$scope.limit += limit;
}
$scope.chat = [{ 'data' : 'one'},{ 'data' : 'two'},{ 'data' : 'three'},{ 'data' : 'four'},{ 'data' : 'five'},{ 'data' : 'six'},{ 'data' : 'seven'},{ 'data' : 'eight'},{ 'data' : 'nine'},{ 'data' : 'ten'},{ 'data' : 'eleven'},{ 'data' : 'twelve'},{ 'data' : 'thirteen'},{ 'data' : 'fourteen'},{ 'data' : 'fifteen'}];
});
相关文章:
- 函数未在Object.keys或Object.getOwnPropertyNames下列出,但可以调用
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- 有没有一种方法可以列出Ember.Object的所有绑定
- 如何取消object.prototypes javascript的一个函数
- 为什么是文档.旧版应用程序中的DOM-object.properties为null
- 将*.js文件的内容放入Object中
- Object.prototype using 'this'
- 使用Object.create()的角度服务继承
- 如何使用object.assign()从其他对象引用基本对象属性
- 循环的数组推入在Object容器中具有不同的值
- reducers在redux中得到Function not Object,what'it’他错了
- JSON.stringify和Object.keys在同一个对象上产生不同的结果
- 在使用object.create创建的对象中使用super
- Join架构验证:Join.object定义数组中的有效键
- jquery打印[object XMLDocument]而不是文件内容
- ExtJS 4 Object.prototype fail
- JavaScript-从对象数组中输出随机OBJECT
- 为什么“{}+1”在Chrome和Firefox中排名第一,而字符串'[object object]1'
- 什么是“;原型;通过JavaScript中的Object Literal Notation创建的对象的链接
- angularjs ng-repeat: limitTo not limiting object loop