AngularJs无法读取属性“”;UpdateTime”;的未定义
AngularJs cannot read property "UpdateTime" of undefined
我有以下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变量发生变化时,我想从js控制器调用UpdateTime方法,但我收到的是:Cannot read property 'UpdateTime' of undefined
。我已经搜索并阅读了很多关于这个错误的帖子,但我找不到我做错了什么。请给我一些帮助:)。
谢谢!
您忘记用数组表示法声明服务注入。应该是:
angular.module('gtApp').controller('settingsController', ["$scope", "SincService", function($scope, SincService) {
$scope.CallTime = 5;
$scope.$watch('CallTime', function() {
SincService.UpdateTime(CallTime);
});
}]);
注意"SincService"
字符串作为控制器定义数组的第二个元素。
CallTime
应该是来自watch函数的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);
});
}]);
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- $window.ga在AngularJS事件中未定义
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 如何消除代码中的未定义和其他问题
- 未捕获的ReferenceError:$未定义
- this.router在AngularJS 2中未定义
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 节点fs.stat名称未定义
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- Jquery未定义函数正在停止其他操作
- AngularJS指令出错-无法读取属性'编译'的未定义
- 这.SOMETHING 总是返回未定义的 - extjs
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- Wordpress中带有JQuery Accordion的未定义匿名函数
- AngularJs无法读取属性“”;UpdateTime”;的未定义