<div style="z-index: 1; position: absolute"ng-show="ctrl.company.selected">
<div style="" ng-repeat="Asset in ctrl.company.selected.Assets">
<div class="pd-5"style="width: 300px; background-color: white; border-bottom: gray solid">
<label>
<input type="checkbox" ng-model="check"/>
{{Asset}}
</label>
</div>
<div ng-show="check">{{Asset}}</div>
</div>
</div>
выше код является активностью отображения при проверке теперь я хочу сохранить массив активов, который проверен
попробуйте это, здесь работает скрипка
<div style="z-index: 1; position: absolute">
<div style="" ng-repeat="(index,val) in Assets">
<div class="pd-5"style="width: 300px; background-color: white; border-bottom: gray solid">
<label>
<input type="checkbox" name="check[]" ng-click="addToSelectedOrNot(index,flag,val)" ng-true-value="true" ng-false-value="false" ng-model="flag"/>
{{val}}
</label>
</div>
</div>
<div ng-show="selectedAssets.length>0">
<div>----------------Selected------------------</div>
<div>{{selectedAssets}}</div>
</div>
контроллер
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.Assets = ['asset1','asset2','asset3'];
$scope.selectedAssets = [];
$scope.addToSelectedOrNot = function(index,flag,val){
if(flag == "true"){
$scope.selectedAssets.push($scope.Assets[index]);
}else if(flag == "false"){
angular.forEach($scope.selectedAssets, function(selVal,selKey )
{
if(val == selVal){
$scope.selectedAssets.splice(selKey,1);
}
});
}
}
}
Другое решение:
<input type="checkbox" ng-model="Asset.checked" ng-true-value="true" ng-false-value="false" />
Затем вы фильтруете Asset на основе проверенных атрибутов. И удалить проверенный атрибут при сериализации на сервер для правильных наборов данных.
Использование ng-true-value
и ng-false-value
связано с тем, что если вы не укажете их, у вас будут "true" и "false" в качестве значения строки
<input type="checkbox" ng-model="check" ng-change="store($index)"/>
Ваш контроллер:
$scope.storedData = [];
$scope.store = function(index) {
$scope.storedData.push($scope.ctrl.company.selected.Assets[index]);
};
Предполагая, что ваш $ scope.ctrl.company.selected.Assets имеет тип массива.
Этот код не был протестирован. Надеюсь, вы понимаете логику, которую я пытаюсь построить здесь.