javascript - $scope.$apply() 不调用函数

标签 javascript angularjs

我需要一个自定义的点击指令,它使用 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/

相关文章:

javascript - 使用 VS2012 调试时强制刷新 JavaScript

javascript - 如何使用正则表达式和 JavaScript 获取相邻匹配?

javascript - Google Charts 不接受格式正确的数组作为行数据

javascript - 插入数组后 Angular 清除对象

javascript - 顶线填充 Nvd3 图表

javascript - angular ui-router 所有 Controller 都重新加载状态变化

javascript - HTML 实体解码

javascript - AngularJS/Javascript 下拉菜单 "onchange"功能不起作用

javascript - Angularjs - $http 成功与那时

javascript - HTML/JS 网站模板?