2014-01-12 3 views
1

Я новичок в angular.js, и я пытался создать список html с флажками, так что я пытался добиться того, чтобы вызвать функцию javascript, когда пользователь проверяет флажок ,Функция вызова только тогда, когда установлен флажок

<input id='box' ng-model='" + key + "' ng-change='graphquery(\"" + key + "\")' class = 'queryNameList css-checkbox' type = 'checkbox' /> 

Так вот, я использовал ng-change, которые в основном фиксирует все изменения, она вызывает функцию на обоих случаях (проверки и убрав)

Можно ли указать, состояние, как это должно вызывать только это если флажок установлен.

ответ

1
$scope.graphquery = function(key){ 
    if(!$scope[key]){ 
    //do nothing 
    return; 
    } 

//do something 
} 
-4
document.getElementById('box').addEventListener('change', function(){ 
if(this.checked === true) runMyFunction(); 
}); 
0

Проверить this example из документации.

ngМодель на флажке, похоже, либо true, либо false, и вот что передается функции, указанной в ngChange. Если вы хотите указать значение истины или значение фальшивки, вы можете использовать директивы и ngFlaseValue.

См. Это Plunk.

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

app.controller('MainCtrl', 
    function($scope) { 

    $scope.graphQuery = function(key) { 
     if (key) 
     $scope.key = key 
    } 

    $scope.returnKey = function() { 
     return '123' 
    } 
    } 
) 

И в HTML

<body ng-controller="MainCtrl"> 
    <input id='box' ng-model='key' ng-change='graphQuery()' class='queryNameList css-checkbox' 
     type='checkbox' ng-true-value="{{returnKey()}}" /> 

    <pre>Key: {{key}}</pre> 
</body> 

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

4
ng-change="!key || graphQuery(key)" 

Если флажок установлен, то !key решает false, так graphQuery(key) выполняется.

Если флажок снят или отключен, то !key переходит на true, поэтому ничего не используется после || игнорируется;

Смежные вопросы