我的 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/