【发布时间】:2016-06-09 23:30:52
【问题描述】:
我有一个 AngularJS 问题让我非常抓狂。我有一个看起来像这样的服务(这是一个说明问题的示例)
var app = angular.module('test-module');
app.service('ToolService', function($timeout){
this.doSomething = function() {
console.log("y u no referenced as method?!?");
}
this.runTimeoutExample = function(){
$timeout(function(){
this.doSomething();
}, 1000);
}
})
我的控制器如下所示:
var app = angular.module('test-module', []);
var ctrl = app.controller('main-controller', function($scope, ToolService) {
$scope.somethingWasClicked = function() {
ToolService.runTimeoutExample();
}
});
这是问题所在,当单击调用 $scope.somethingWasClicked 的按钮时,它会将调用转发给服务,并且我收到一条错误消息,提示“this.doSomething 不是函数”。
为什么?我该如何解决这个问题?我很难找到一种方法来绕过需要我的代码像这样运行而不向我的控制器添加不必要的逻辑。
提前感谢您的帮助
【问题讨论】:
标签: javascript angularjs timeout