2017-12-19 3 views
0

확인란을 클릭하면 결과를 표시하려고합니다. 그 때문에 나는 ng-click으로 해봤지만 선택하지 않은 경우에만 결과를 반환합니다.

여기 내 코드입니다 :

HTML :

<div class="business-type"> 
      <div class="col-sm-12 filter-wrap-inner"> 
       <label for="rad1" ><input type="checkbox" name="reason-closing" value="Transporter" id="ad_Checkbox1" class="ads_Checkbox" ng-model="isTransporterSelected" ng-change="searchUser()"> Transporter</label> 
      </div> 
      <div class="col-sm-12 filter-wrap-inner"> 
       <label for="rad1" ><input type="checkbox" name="reason-closing" value="Broker" id="ad_Checkbox1" class="ads_Checkbox" ng-model="isBrokerSelected" ng-change="searchUser()">Broker</label> 
      </div>      
      <div class="col-sm-12 filter-wrap-inner"> 
       <label for="rad1" ><input type="checkbox" name="reason-closing" value="Fleet Owner" id="ad_Checkbox1" class="ads_Checkbox" ng-model="isFleetownerSelected" ng-change="searchUser()">Fleet Owner</label> 
      </div> 
     </div> 

JS: 

$scope.isTransporterSelected = false; 
$scope.isBrokerSelected = false; 
$scope.isFleetownerSelected = false 

$scope.searchUser = function(){ 
    $('.load-board-loader').show(); 
    var i; 
    var containCount= 41; 
    var vFromStateId = vToStateId = fromStateId = toStateId = ''; 
    var stateId=[]; 
    var $el=$("#usersearch-origin"); 
    $el.find('option:selected').each(function(){ 
     stateId.push({value:$(this).val(),text:$(this).text()}); 
    }); 

    var originId=[]; 
    var $el=$("#usersearch-source"); 
    $el.find('option:selected').each(function(){ 
     originId.push({value:$(this).val(),text:$(this).text()}); 
    }); 
    for(i=0;i<(stateId.length);i++) 
    { 
    if(i==0) 
    { 
     fromStateId = stateId[i].value; 
    } 
    else{ 
     fromStateId = fromStateId+','+stateId[i].value; 
    } 
    } 

    for(i=0;i<(originId.length);i++) 
    { 
    if(i==0) 
    { 
     toStateId = originId[i].value; 

    } 
    else{ 
     toStateId = toStateId+','+originId[i].value; 
    } 
    } 

    vFromStateId = fromStateId ; 
    vToStateId = toStateId ; 
    var data ={ 
    fromStateIds: vFromStateId, 
    toStateIds: vToStateId, 
    typeOfBusiness: businessTypeValue, 
    vehicleClassIds: truckTypeValue, 
    orgName: '', 
    } 
    var url = 'url.com'; 
    //if(vFromStateId != '' || vToStateId != ''){ 
    $.ajax({ 
    url: url, 
    type: "POST", //Use "PUT" for HTTP PUT methods 
    dataType: 'json', 
    data: data, 
    success:function(response){ 
     if ($scope.isTransporterSelected || $scope.isBrokerSelected || $scope.isFleetownerSelected) { 
     debugger 
     $scope.users = response.directory; 
     for(var j= 0; j<response.directory.length; j++){ 
     } 
     $scope.$apply(); 
     $('.load-board-loader').hide(); 
     } else { 
     $scope.users = response.directory; 
     for(var j= 0; j<response.directory.length; j++){ 
     } 
     $scope.$apply(); 
     $('.load-board-loader').hide(); 
     } 

    }, 
    error: function(error){ 
     alert("Sorry , No data available"); 
    } 
    }); 

나는이 질문에 아래의 의견에 따라 최신 코드로 내 코드를 업데이트하고 있습니다. 변경해야 할 부분을 알려주십시오. 이것에 대한 도움이 될 것입니다.

답변

2

당신은 사용자가 내가 당신의 코드를 시도 ngClick

(function(angular) { 
 
    'use strict'; 
 
    angular.module('myApp', []) 
 
    .controller('Controller', ['$scope', function($scope) { 
 
     $scope.isTransporterSelected = false; 
 
     $scope.searchUser = function() { 
 
     //For debugging 
 
     console.clear(); 
 

 
     if ($scope.isTransporterSelected) { 
 
      console.log('Transporter selected search student') 
 
     } else { 
 
      console.log('Transporter deselected donot search student') 
 
     } 
 
     } 
 
    }]); 
 
})(window.angular);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.7/angular.min.js"></script> 
 
<div ng-app="myApp"> 
 
    <div ng-controller="Controller as nb"> 
 
    <label><input type="checkbox" ng-model="isTransporterSelected" value="Transporter" ng-change="searchUser()" > Transporter</label> 
 
    </div>

+0

대신 입력 값을 변경할 때, 지정된 식을 계산 ngChange을 사용하는 체크 박스 ngModel 지시를 결합한다. 내가 뭔가 잘못하고있을 수도 있습니다. 최신 변경 코드로 코드를 업데이트하고 있습니다. 한번 봐주세요. –

+1

@TanmoySarkar 대신''$ http' (https://docs.angularjs.org/api/ng/service/$http)를 사용하십시오. '$ .ajax' – Satpal

+0

이걸 편집 해 주실 수 있습니까? 나는 내 편에서 어리석은 실수에 직면하고있다. –

관련 문제