2017-01-30 4 views
-1

Пожалуйста, проверьте ПримерAngularJs :: Первое Радио кнопка должны был выбран из каждой группы переключателей после фильтра и установите IsSelected истину и другую ложь

// 
 
var ngApp = angular.module('app', []); 
 
    
 
ngApp.controller('ctrl',function($scope){ 
 

 
$scope.setSelected = function ($data, $pData) { 
 
     angular.forEach($data, function (cu) { 
 
       cu.IsSelected = false; 
 
     }); 
 
     $pData.IsSelected = true; 
 
    }; 
 
    $scope.BusArray = [ 
 
\t [{ 
 

 
\t \t "BusName": "Ax. Travels", 
 
\t \t "Origin": "DEL", 
 
\t \t "Destination": "JAI", 
 
\t \t "TotalFare": 1200, 
 
\t \t "IsSelected": true 
 
\t }, { 
 

 
\t \t "BusName": "Bx. Travels", 
 
\t \t "Origin": "DEL", 
 
\t \t "Destination": "JAI", 
 
\t \t "TotalFare": 1600, 
 
\t \t "IsSelected": false 
 
\t }, { 
 

 
\t \t "BusName": "Bx. Travels", 
 
\t \t "Origin": "DEL", 
 
\t \t "Destination": "JAI", 
 
\t \t "TotalFare": 800, 
 
\t \t "IsSelected": false 
 
\t }, { 
 

 
\t \t "BusName": "Nx. Travels", 
 
\t \t "Origin": "DEL", 
 
\t \t "Destination": "JAI", 
 
\t \t "TotalFare": 400, 
 
\t \t "IsSelected": false 
 
\t }], 
 
\t [{ 
 

 
\t \t "BusName": "Ax. Travels", 
 
\t \t "Origin": "DEL", 
 
\t \t "Destination": "JAI", 
 
\t \t "TotalFare": 1100, 
 
\t \t "IsSelected": true 
 
\t }, { 
 

 
\t \t "BusName": "Nx. Travels", 
 
\t \t "Origin": "DEL", 
 
\t \t "Destination": "JAI", 
 
\t \t "TotalFare": 1400, 
 
\t \t "IsSelected": false 
 
\t }, { 
 

 
\t \t "BusName": "Nx. Travels", 
 
\t \t "Origin": "DEL", 
 
\t \t "Destination": "JAI", 
 
\t \t "TotalFare": 600, 
 
\t \t "IsSelected": false 
 
\t }, { 
 

 
\t \t "BusName": "Bx. Travels", 
 
\t \t "Origin": "DEL", 
 
\t \t "Destination": "JAI", 
 
\t \t "TotalFare": 500, 
 
\t \t "IsSelected": false 
 
\t }] 
 
]; 
 
    
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" > 
 
    <div ng-controller="ctrl"> 
 
    
 
Type(Bx/ Nx/Ax): <input type="text" ng-model="checkPrice"> 
 
     <div ng-repeat="buses in BusArray"> 
 
     <span>group{{$index+1}}</span> 
 
     <form> 
 
     <div ng-repeat="bus in dd=(buses|filter:checkPrice)"> 
 
    <label style="font-size:12px; background-color:green; padding:2px;"> 
 
       <input name="{{$parent}}" id="{{$parent.$index}}{{$index}}" type="radio" ng-checked="bus.IsSelected" ng-click="setSelected(buses,bus)" /> 
 
       {{bus|json}} 
 
       </label> 
 
      
 
      </div> 
 
       </form> 
 
      <div> 
 
     </div> 
 
     
 
     <hr/> 
 
     
 
    </div> 
 
     {{BusArray | json}} 
 
</div>

::

Моей потребности ::

------------- Дело ::

Если я тип "ОГО" в поле ввода :: группа 1 :: Первая радиокнопка была выбрана, а «выбрано» установлено значение true, а другие - false, и если я удалю фильтр, то он должен установить в старые данные (т. Е. «Bus Array»). ** Группа 2: так же, как группа 1

ответ

0

Я сделал некоторые изменения здесь .. проверьте скрипку - fiddle

$scope.isSetSelected = function(isSet , $data , $pData,isFirst){ 
     if(isSet) return true; 
     else{ 
     var isAnyDataSelected = false; 
     angular.forEach($data, function (cu) { 
       if (cu.IsSelected) 
        isAnyDataSelected = true; 
     }); 
     if(isAnyDataSelected) 
      return false; 
     else if(isFirst) 
      return true; 
     } 
} 
+0

привет Disha .. Вы правильно о выборе первого радио БТН. .. но моя потребность в том, что он должен установить значение «IsSelected»: true, а другие - false в массиве. и когда я удаляю фильтр первым переключателем sholud, выбираем set «IsSelected»: true, а другие - false. – user2558338