2017-02-24 72 views
1

的失配記錄的設置屬性這是我的2個陣列:忽略來自陣列共同記錄和陣列

$scope.Array1 = 
{ 
    "data": [ 
    { 
     "name": "Abc", 
     "selected": false 
    }, 
    { 
     "name": "Pqr", 
     "selected": false 
    }, 
    { 
     "name": "Lmn", 
     "selected": false 
    }, 
    { 
     "name": "Ggg", 
     "selected": false 
    } 
    ], 
} 


$scope.obj.Array2 = ["Abc"]; 

現在,當我有2種模式,就是添加模式和編輯模式,所以當會有加模式我將$ scope.obj.Array2設置爲undefined,因此當時我想將Array1的所有記錄的selected屬性設置爲true。

但現在當我將編輯模式,我想忽略匹配在array1記錄,所以我想設置只Pqr,Lmn and GGG selected property to true.

所以基本上我做檢查,並在array1取消所有,雖然編輯模式我想忽略檢查/取消選中的常用記錄。

代碼:

angular.forEach($scope.Array1, function (item, index) { 
         item.selected = $scope.checkAllFlag; //This will be either true of false 
       }); 

回答

3

根據您所提供的數據,你可以試試這個:

angular.forEach($scope.Array1, function (item, index) { 
         if(!$scope.obj.Array2 || !$scope.obj.Array2[item.name]) 
          item.selected = $scope.checkAllFlag; 
       }); 
+0

但在添加模式下我的$ scope.obj.Array2將是不確定的 –

+0

真,錯過了那部分,現在編輯代碼:) – eminlala

+0

Upvoted爲您的善良努力,幫助我.Sorry但在編輯模式下,我能夠檢查/取消選中matchhing記錄也。在編輯模式下,這個條件變爲真!$ scope.obj.Array2這就是爲什麼我還是能夠檢查/取消匹配記錄 –