我有以下 js Controller :
angular.module('gtApp').controller('settingsController', ["$scope", function($scope, SincService) {
$scope.CallTime = 5;
$scope.$watch('CallTime', function() {
SincService.UpdateTime(CallTime);
});
}]);
以及以下工厂:
angular.module('gtApp').factory('SincService', function ($rootScope) {
var data = {};
data.CallTime = 5;
data.UpdateTime = function(value) {
this.CallTime = value;
$rootScope.$broadcast("timeUpdated");
}
return data;
});
当 Controller 中的 CallTime 变量发生更改时,我想从 js Controller 调用 UpdateTime 方法,但我收到以下消息:无法读取未定义的属性“UpdateTime”
。我已经搜索并阅读了很多关于此错误的帖子,但我找不到我做错了什么。请给我一些帮助:) 。
谢谢!
最佳答案
您忘记以数组表示法声明服务注入(inject)。应该是:
angular.module('gtApp').controller('settingsController', ["$scope", "SincService", function($scope, SincService) {
$scope.CallTime = 5;
$scope.$watch('CallTime', function() {
SincService.UpdateTime(CallTime);
});
}]);
注意“SincService”字符串作为 Controller 定义数组的第二个元素。
关于javascript - AngularJs无法读取未定义的属性 "UpdateTime",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29287801/