javascript - AngularJs无法读取未定义的属性 "UpdateTime"

标签 javascript angularjs

我有以下 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/

相关文章:

angularjs - 从注入(inject)器访问 $location

javascript - 来自已编译 html 的 <a href> 链接的 Angular 指令

javascript - 将 jquery 与从 Angular 动态创建的元素一起使用不起作用

javascript - 为 Node.js 和 Angular 只创建一次模型?

javascript - onbeforeunload 事件可以通过 $watch 在 angular js 中观看吗?

javascript - 使用 Node 在rehindb中插入错误

IE 中的 javascript 错误无法查看或解决问题

javascript - jquery.validate.1.9.js - 验证忽略正则表达式中未列出的内容

javascript - 4 个复选框,如果选中 2 个或更多复选框,我想随机触发与其中一个复选框关联的 1 个函数

javascript - 如何在PHP中选择带有连接表的记录