Javascript 当选中某个函数时,如何使用checkbox从AngularJS指令调用该函数?

Javascript 当选中某个函数时,如何使用checkbox从AngularJS指令调用该函数?,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,最近我实现了一个指令,它使用了一个用css定制的复选框。当选中复选框的值时,我需要从作用域调用函数。我有一些东西可以使用ng click,但这不是我要搜索的 我查看了ng true value,但它需要的是一个值,而不是我可以调用的函数。有没有办法解决这个问题,使该函数只能在复选框处于活动状态时调用?这是指令定义: { restrict: 'E', replace: true, require: ['^ngModel'], scope:{

最近我实现了一个指令,它使用了一个用css定制的复选框。当选中复选框的值时,我需要从作用域调用函数。我有一些东西可以使用
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 modelwatch功能对复选框执行逻辑操作

$scope.$watch('modelName', function() {
    // do something here

});

您可以查看$scope.watch$watch(watchExpression,listener,[objectEquality]);注册在watchExpression更改时执行的侦听器回调。每次调用$digest()时都会调用watchExpression,并应返回将被监视的值。(watchExpression在使用同一输入执行多次时不应更改其值,因为$digest()可能会多次执行它。根据需要,您可以使用
ng change
或简单的
$watch
来控制逻辑。这可能发生在链接函数中(因为您可以访问范围),但我建议只为指令使用控制器。非常感谢您的回复和编辑。正如您建议的那样,我使用了$watch。仍然有一个问题,是否有任何方法可以实现这一点,使用我在作用域中设置的任何功能,使指令可以通用?例如ng click。