используя angularjs хотите хранить активы, которые проверены

0
 <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>

выше код является активностью отображения при проверке теперь я хочу сохранить массив активов, который проверен

3 ответа

2
Лучший ответ

попробуйте это, здесь работает скрипка

<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);
     }
    });
   }
  }
}
  • 0
    Большое спасибо, его работа для меня, я хочу именно так
  • 0
    @zubairsadiq, пожалуйста, смотрите обновленный код, в предыдущей версии была небольшая ошибка, также обновленная скрипка
0

Другое решение:

  <input type="checkbox" ng-model="Asset.checked" ng-true-value="true" ng-false-value="false" />

Затем вы фильтруете Asset на основе проверенных атрибутов. И удалить проверенный атрибут при сериализации на сервер для правильных наборов данных.

Использование ng-true-value и ng-false-value связано с тем, что если вы не укажете их, у вас будут "true" и "false" в качестве значения строки

0
<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 имеет тип массива.

Этот код не был протестирован. Надеюсь, вы понимаете логику, которую я пытаюсь построить здесь.

  • 0
    Ваша логика не включает, если я снял галочку.
  • 0
    @ Вальфрат, да, ты прав. Я просто новичок. Не думал об этом

Ещё вопросы

Сообщество Overcoder
Наверх
Меню