2017-12-18 11 views
2

現在のチェックボックスの値をチェックするためにng-checkedで関数を呼び出しましたが、チェックされていればチェックボックスをチェックする必要があります。チェックを外す必要がありますng-checked関数で渡された引数を取得できません

これを達成するために、ng-checkedで呼び出されるshow関数の引数としてthis.valueを渡しました。しかし、このthis.valueは、コンソールにログインすると未定義です。関数内でイベントオブジェクトをパラメータとして渡しても、定義されていない状態に戻ります。事前に

var app = angular.module('app', []); 
 

 
app.controller('mainController', function($scope, $http) { 
 
    $scope.show = function(val) { 
 
     console.log(val); 
 
     if (val == 'test') { 
 
      return true; 
 
     } else { 
 
      return false; 
 
     } 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div ng-app="app"> 
 
    <div ng-controller="mainController"> 
 
\t  <input type="checkbox" value="test" ng-checked="show(this.value)"/> 
 
    </div> 
 
</div>

感謝:)

答えて

2

あなたが代わりにNG-確認

ngのモデルを使用することがあります:

してください以下のコードをチェックします

var app = angular.module('app', []); 
 

 
app.controller('mainController', function($scope, $http) { 
 
    $scope.test = false 
 
    $scope.show = function(val) { 
 
     $scope.test = val 
 
    } 
 

 
    /// after fetching data from your server, 
 
    /// you can set checked by calling: 
 
    $scope.show(true) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div ng-app="app"> 
 
    <div ng-controller="mainController"> 
 
    <input type="checkbox" ng-model="test" /> 
 
     
 
    </div> 
 
</div>

+0

いいえ、実際にはサーバーからデータを取得しています。データは真または偽のいずれかになりますので、このブール値の値に応じてチェックボックスをオンまたはオフにします – Harish

+0

回答が更新されました。この場合、サーバからのデータに基づいてモデル値が設定されます –

+0

さて、私はそれを試してみます – Harish

関連する問題