Javascript AngularJs无法读取属性";“更新时间”;未定义的
我有以下js控制器:Javascript AngularJs无法读取属性";“更新时间”;未定义的,javascript,angularjs,Javascript,Angularjs,我有以下js控制器: angular.module('gtApp').controller('settingsController', ["$scope", function($scope, SincService) { $scope.CallTime = 5; $scope.$watch('CallTime', function() { SincService.UpdateTime(CallTime); }); }]); 以及以下工厂: an
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;
});
当CallTime变量在controller中更改时,我想从js控制器调用UpdateTime方法,但我收到以下消息:无法读取未定义的属性“UpdateTime”
。我已经搜索并阅读了很多关于这个错误的帖子,但是我找不到我做错了什么。请在这方面给我一些帮助:)
谢谢大家! 您忘了用数组表示法声明服务注入。应该是:
angular.module('gtApp').controller('settingsController', ["$scope", "SincService", function($scope, SincService) {
$scope.CallTime = 5;
$scope.$watch('CallTime', function() {
SincService.UpdateTime(CallTime);
});
}]);
注意
“SincService”
字符串作为控制器定义数组的第二个元素。CallTime
应该是watch function中的newVal
或$scope.CallTime
,也没有添加SincService
的依赖项
angular.module('gtApp').controller('settingsController',["$scope",'SincService', function($scope, SincService) {
$scope.CallTime = 5;
$scope.$watch('CallTime', function(newVal) {
SincService.UpdateTime(newVal);
});
}]);