我有一些功能在我的控制器和一個手錶,隱藏和顯示我的網頁上的一些元素。角度手錶並不總是工作
我最初創建的對象:
$scope.selectedItems = [];
使用某些功能時,我可以選擇連接取消選擇:
$scope.selectAllItems = function(items){
for(var i =0; i < items.length; i++){
items[i].selected = true;
$scope.selectedItems.push(items[i]._id);
}
}
$scope.deselectAllItems = function(items){
for(var i=0; i<items.length; i++){
items[i].selected = false;
$scope.selectedItems = [];
}
}
$scope.inverseAllItems = function(items){
$scope.selectedItems = [];
for(var i=0; i<items.length; i++){
items[i].selected = items[i].selected ? false : true;
if(items[i].selected)
$scope.selectedItems.push(items[i]._id);
}
}
$scope.selectItem = function(item){
console.log(item.selected);
if(item.selected){
console.log(item._id);
$scope.selectedItems.push(item._id);
}else{
console.log("hier2");
if($scope.selectedItems.indexOf(item._id))
$scope.selectedItems.splice($scope.selectedItems.indexOf(item._id),1)
}
}
而且在$scope.selectedItems
$scope.$watch("selectedItems", function handleSelectedItemsChange(newValue, oldValue){
console.log("$scope.selectedItems.length", $scope.selectedItems.length);
if($scope.selectedItems.length > 1){
$scope.multipleSelect = true;
$('.itemStatus').toggleClass('hidden', true);
}else{
$scope.multipleSelect = false;
$('.itemStatus').toggleClass('hidden', false);
}
})
手錶的問題是,手錶並不總是被觸發。在使用'inverseSelection
'和'deselectAll
'功能後,它始終被觸發,但在使用'selectAll
'和'selectItem
'(一個選擇項目)後不會被觸發,但我沒有看到任何差異我推入selectedItems
陣列中的條目。
有人可以幫我嗎?
作爲一個數組,你應該使用'$ watchCollection' –
aaah。簡單但這確實是解決方案。謝謝! – NVO
@PankajParkar你可以做出答案。 – Alok