我需要一个自定义的点击指令,它使用 scope.$apply() 执行传递的代码。
$(elem).on('click', function(){
scope.$apply(attrs.wdClick);
});
如果我传递类似 wd-click="something = !something"的东西,这会很好地工作。但是当我尝试调用 $rootScope 函数时它不起作用,但是在使用默认的 ng-click 时它确实起作用。
wd-click="$root.someFunction()" //this does not call the function but ng-click does
我已经尝试更新指令以使其工作
$(elem).on('click', function(){
$rootScope.$apply(attrs.wdClick);
});
但这也行不通。有什么想法吗?
最佳答案
attrs.wdClick
是一个字符串,因此将它传递给 $apply
不会执行任何操作。要调用该函数,您可以将字符串传递给 $eval
scope.$apply(function() {
scope.$eval(attrs.wdClick)
});
关于javascript - $scope.$apply() 不调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31745126/