我是angular.js的新手,我试图创建一个带复选框的html列表,所以我试图实现的是在用户选中复选框时调用javascript函数。
<input id='box' ng-model='" + key + "' ng-change='graphquery(\"" + key + "\")' class = 'queryNameList css-checkbox' type = 'checkbox' />
所以在这里,我使用ng-change
基本上捕获了所有更改,它在两种情况下调用函数graphquery
(检查和取消选中)
是否可以指定,条件,如果选中该复选框,它应该只调用此函数。
答案 0 :(得分:5)
ng-change="!key || graphQuery(key)"
如果选中该复选框,则!key
会解析为false
,因此会执行graphQuery(key)
。
如果取消选中该复选框,则!key
会解析为true
,因此忽略||
之后的任何内容;
答案 1 :(得分:1)
$scope.graphquery = function(key){
if(!$scope[key]){
//do nothing
return;
}
//do something
}
答案 2 :(得分:0)
从文档中查看this example。
复选框上的 ngModel似乎是true
或false
,这是传递给您在ngChange
中指定的函数的内容。如果要指定真值或伪值,可以使用ngTrueValue
和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
的情况下返回一个字符串。
答案 3 :(得分:-4)
document.getElementById('box').addEventListener('change', function(){
if(this.checked === true) runMyFunction();
});