Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJs无法读取属性";“更新时间”;未定义的_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJs无法读取属性";“更新时间”;未定义的

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

我有以下js控制器:

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);
    });    
}]);