AngularJS限制动态扩展数组
AngularJS limitTo on dynamically expanding array
我有以下指令(sales.jade
):
div(ng-repeat='product in products')
div.col-md-4
button.btn.btn-block.sell-button(id='{{product._id}}' role='button' ng-click='sell()'){{product.name}}
div(ng-repeat='p in supp track by $index | limitTo: 3')
p {{p.name}}
JS:
app.directive('sales', ['productServices', 'flash',
function(productServices, flash) {
var controller = function($scope, $timeout) {
productServices.getProducts()
.success(function(result) {
$scope.products = result.data
$scope.supp = []
})
.error(showErrorMessage(flash))
$scope.sell = function() {
that = this
$scope.supp.push(this.product)
$timeout(function() {
$('#' + that.product._id).blur()
}, 40)
}
}
return {
restrict: 'E',
templateUrl: '/partials/sales',
controller: controller
}
}
])
正如您所看到的,当单击按钮(与产品绑定)时,我将该产品添加到supp
数组中,并通过ngRepeat
指令显示supp
数组的内容。我的问题是,limitTo
过滤器不应用所有的时间,我添加一个元素的supp
数组。因此,ngRepeat
显示supp
中的所有项目。我怎么能只显示supp
数组的最后3个元素,即使我添加了一些新项目?
如果你需要显示最后3个项目,那么你需要使用负跟踪值。此外,如果你想应用限制,然后在限制过滤器上设置跟踪,基本上你想在实际限制(limitTo
)上应用跟踪,而不是在整个列表上(' ' supp ')。这就是为什么它会显示列表中的所有元素。即:-
<div ng-repeat="p in supp | limitTo: -3 track by $index">
或模板
div(ng-repeat='p in supp | limitTo: -3 track by $index')
Plnkr
相关文章:
- 对JSON格式的对象数组进行迭代,并对其进行修改和扩展,最好使用Undercore.js
- 如何为特定的javascript对象扩展数组或对象原型
- 向扩展数组的JS集合添加对象(继承?)
- 尝试将数组从内容脚本发送到弹出脚本时出现 Chrome 扩展程序时出错
- 具有函数继承的对象扩展数组
- jQuery - 扩展对象,同时确保数组成员的完整性
- Javascript:如何将数组元素扩展到所有其他元素并创建一个数组
- 使用地图时使用扩展运算符扩展数组
- 从 TypeScript 扩展数组
- 猫鼬 + lodash 扩展对象复制数组不正确
- 使用按值删除元素的自定义方法扩展数组
- jQuery从数组扩展一个json元素
- 什么是最好的javascript数组库/实用程序/扩展
- AngularJS限制动态扩展数组
- 使用John Resig Extend扩展数组
- 扩展数组属性
- 扩展数组的问题
- 任何创建扩展数组的对象的方法
- 适当地扩展数组,保持子类的实例
- 扩展数组.原型在Node.js中,从一个require'd文件