我正在尝试在我的角度应用程序中添加功能,以便在单击它们时记录复选框的顺序,从而以与单击它们相同的顺序显示它们。
以下是摘录:
var app = angular.module('checkbox', []);
app.controller('homeCtrl', function ($scope) {
$scope.array = [1, 5];
$scope.array_ = angular.copy($scope.array);
$scope.list = [{
"id": 1,
"value": "apple",
}, {
"id": 3,
"value": "orange",
}, {
"id": 5,
"value": "pear"
}];
$scope.update = function () {
if ($scope.array.toString() !== $scope.array_.toString()) {
return "Changed";
} else {
return "Not Changed";
}
};
})
});
在此代码段数组中,应按照单击顺序显示数字。
答案 0 :(得分:0)
不确定我是否完全理解您的需求,但请查看 Plunker
这个想法是使用这样的函数来记录点击顺序:
$scope.onClick = function(box) {
var index = $scope.model.clickOrder.indexOf(box);
if (index !== -1) {
$scope.model.clickOrder.splice(index, 1);
} else {
$scope.model.clickOrder.push(box);
}
updateOrderedList();
};
这样的函数更新复选框顺序:
var updateOrderedList = function() {
$scope.model.orderedList = []
.concat($scope.model.clickOrder)
.concat($scope.model.list.filter(function(item) {
return $scope.model.clickOrder.indexOf(item) === -1;
}));
};