javascript - 从外部 Controller 调用 Angular JS

标签 javascript angularjs

我的 Angular 应用程序代码:

(function() {

     var app = angular.module('checkout', []);  
     app.controller('TabController', function(){
         this.tab2Done=0;
         this.setTab2Done= function(newValue){
              this.tab2Done = newValue;
         };
     });
})();

我想从 JavaScript 函数(函数名称调用)调用 tab2Done。我在互联网上找到了解决方案,并尝试了该方法,但它不起作用。这是我尝试过的方法:

具有 ng-controller="TabController" 的 div 具有 id="yourControllerElementID"

这是我的 JavaScript 函数:

function call(){   
    alert();
    e=$('#yourControllerElementID');
    scope=angular.element(e).scope();  
    scope.$apply(function(){
        scope.setTab2Done(1);
    });
}

但我收到一个错误:

at Scope.$eval at Scope.$apply

我做错了什么?

最佳答案

我认为你的问题是你尝试调用的方法不在你的范围内。从您在 Controller 中的“this”上设置方法的事实来看,您似乎正在使用“Controller as”语法。

您可以为您的示例提供一个 plunker,但让我尝试使用以下代码解决您的问题:

function call(){   
  var element = angular.element('#yourControllerElementID');
  var controller = element.controller();
  var scope = element.scope();  
  scope.$apply(function(){
    controller.setTab2Done(1);
  });
}

关于javascript - 从外部 Controller 调用 Angular JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24649845/

相关文章:

javascript - 如何预测纺车的停止 Angular ?

javascript - 如何测试使用钩子(Hook)且不返回 JSX 的 ReactJS 函数

javascript - 检查键值是否存在,如果不存在则在 javascript 中推送带有值的键

javascript - 如何在angularjs中从一个 Controller 动态获取数据到另一个 Controller ?

javascript - Angularjs 项目列表的 UI 路由器

javascript - 检查一个 div 而不是一个复选框

javascript - 将纬度和经度传递给谷歌地图。需要有人帮我纠正我的代码

javascript - 在由 HTML 标签和属性组成的字符串中转义哪些字符?

javascript - 刷新 Angular ui 网格数据的最佳方法。状态刷新或将新数据提供给 $scope.gridOptions.data?

javascript - Opera 浏览器中 Chart.js 的输出(柱形图)模糊吗?