Javascript 当选中某个函数时,如何使用checkbox从AngularJS指令调用该函数?
最近我实现了一个指令,它使用了一个用css定制的复选框。当选中复选框的值时,我需要从作用域调用函数。我有一些东西可以使用Javascript 当选中某个函数时,如何使用checkbox从AngularJS指令调用该函数?,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,最近我实现了一个指令,它使用了一个用css定制的复选框。当选中复选框的值时,我需要从作用域调用函数。我有一些东西可以使用ng click,但这不是我要搜索的 我查看了ng true value,但它需要的是一个值,而不是我可以调用的函数。有没有办法解决这个问题,使该函数只能在复选框处于活动状态时调用?这是指令定义: { restrict: 'E', replace: true, require: ['^ngModel'], scope:{
ng click
,但这不是我要搜索的
我查看了ng true value
,但它需要的是一个值,而不是我可以调用的函数。有没有办法解决这个问题,使该函数只能在复选框处于活动状态时调用?这是指令定义:
{
restrict: 'E',
replace: true,
require: ['^ngModel'],
scope:{
isChecked: '=?',
secondFunction: '&'
},
template: function (elem, attr){
var a= '<label class="switch"'+attr.class+'><input type="checkbox" ng-class="{checked: isChecked}"><i></i></label>';
return a;
},
}
{
限制:'E',
替换:正确,
要求:[“^ngModel]”,
范围:{
已检查:“=?”,
第二个函数:'&'
},
模板:函数(元素、属性){
var a=“”;
返回a;
},
}
在chechkbox上使用
ng change='functionName()'
您可以使用ng model和watch功能对复选框执行逻辑操作
$scope.$watch('modelName', function() {
// do something here
});
您可以查看$scope.watch$watch(watchExpression,listener,[objectEquality]);注册在watchExpression更改时执行的侦听器回调。每次调用$digest()时都会调用watchExpression,并应返回将被监视的值。(watchExpression在使用同一输入执行多次时不应更改其值,因为$digest()可能会多次执行它。根据需要,您可以使用
ng change
或简单的$watch
来控制逻辑。这可能发生在链接函数中(因为您可以访问范围),但我建议只为指令使用控制器。非常感谢您的回复和编辑。正如您建议的那样,我使用了$watch。仍然有一个问题,是否有任何方法可以实现这一点,使用我在作用域中设置的任何功能,使指令可以通用?例如ng click。