Javascript 获得;未捕获引用错误:未定义UpdateLock";AngularJS应用程序中出现错误
Javascript 获得;未捕获引用错误:未定义UpdateLock";AngularJS应用程序中出现错误,javascript,angularjs,Javascript,Angularjs,index.html是: <html ng-app="clock"> <head> <script type="text/javascript" src="angular.js"></script> <script type="text/javascript" src="app.js"></script> </head> <body> <h1 ng-contro
index.html是:
<html ng-app="clock">
<head>
<script type="text/javascript" src="angular.js"></script>
<script type="text/javascript" src="app.js"></script>
</head>
<body>
<h1 ng-controller="ClockController">{{clockTime}}</h1>
</body>
</html>
var app = new angular.module('clock',[]);
(function(){
app.controller('ClockController',function($scope){
this.updateClock = function(){
$scope.clockTime = new Date();
};
setInterval(function(){
$scope.$apply(updateClock);
},1000);
this.updateClock();
});
})();
当我访问index.html
时,我在1秒后不断收到以下错误
未捕获引用错误:未定义UpdateLock
在调用setInterval
之前,我已经定义了updatelock
,为什么我会收到此消息?请更改
this.updateClock = function(){
$scope.clockTime = new Date();
};
到
在间隔函数的范围内提供updatelock。使用此关键字,您可以将函数分配给控制器函数的属性,但它不会使更新锁定作为变量可用。请更改
this.updateClock = function(){
$scope.clockTime = new Date();
};
到
在间隔函数的范围内提供updatelock。使用此关键字,您可以将函数分配给控制器函数的属性,但它不会使更新锁定作为变量可用。请更改
this.updateClock = function(){
$scope.clockTime = new Date();
};
到
在间隔函数的范围内提供updatelock。使用此关键字,您可以将函数分配给控制器函数的属性,但它不会使更新锁定作为变量可用。请更改
this.updateClock = function(){
$scope.clockTime = new Date();
};
到
在间隔函数的范围内提供updatelock。使用这个关键字,您可以将函数分配给控制器函数的属性,但是它不会使updateLock作为变量可用。我认为实现您想要实现的目标的最佳方法是这样做:
angular.module('clock', [])
.controller('ClockController',function ($scope, $interval) {
$scope.clockTime = new Date();
var id = $interval(function () {
$scope.clockTime = new Date();
}, 1000);
$scope.$on('$destroy', function () {
$interval.cancel(id);
});
});
别忘了清理
$destroy
事件的间隔我认为实现您想要实现的目标的最佳方法是:
angular.module('clock', [])
.controller('ClockController',function ($scope, $interval) {
$scope.clockTime = new Date();
var id = $interval(function () {
$scope.clockTime = new Date();
}, 1000);
$scope.$on('$destroy', function () {
$interval.cancel(id);
});
});
别忘了清理
$destroy
事件的间隔我认为实现您想要实现的目标的最佳方法是:
angular.module('clock', [])
.controller('ClockController',function ($scope, $interval) {
$scope.clockTime = new Date();
var id = $interval(function () {
$scope.clockTime = new Date();
}, 1000);
$scope.$on('$destroy', function () {
$interval.cancel(id);
});
});
别忘了清理
$destroy
事件的间隔我认为实现您想要实现的目标的最佳方法是:
angular.module('clock', [])
.controller('ClockController',function ($scope, $interval) {
$scope.clockTime = new Date();
var id = $interval(function () {
$scope.clockTime = new Date();
}, 1000);
$scope.$on('$destroy', function () {
$interval.cancel(id);
});
});
不要忘记清理
$destroy
事件的间隔,因为您的函数updatelock
是在对象上定义的。当您在区间内调用它时,JS引擎无法为您找到函数定义。改为:
app.controller('ClockController',function($scope) {
function updateClock () {
$scope.clockTime = new Date();
};
setInterval(function () {
$scope.$apply(updateClock);
}, 1000);
updateClock();
});
顺便说一下,请使用该服务而不是setInterval
。这样,您就不需要显式调用$apply
:
app.controller('ClockController', function($scope, $interval) {
...
$interval(function() {
updateClock();
}, 1000);
...
});
因为函数updatelock
是在对象this
上定义的。当您在区间内调用它时,JS引擎无法为您找到函数定义。改为:
app.controller('ClockController',function($scope) {
function updateClock () {
$scope.clockTime = new Date();
};
setInterval(function () {
$scope.$apply(updateClock);
}, 1000);
updateClock();
});
顺便说一下,请使用该服务而不是setInterval
。这样,您就不需要显式调用$apply
:
app.controller('ClockController', function($scope, $interval) {
...
$interval(function() {
updateClock();
}, 1000);
...
});
因为函数updatelock
是在对象this
上定义的。当您在区间内调用它时,JS引擎无法为您找到函数定义。改为:
app.controller('ClockController',function($scope) {
function updateClock () {
$scope.clockTime = new Date();
};
setInterval(function () {
$scope.$apply(updateClock);
}, 1000);
updateClock();
});
顺便说一下,请使用该服务而不是setInterval
。这样,您就不需要显式调用$apply
:
app.controller('ClockController', function($scope, $interval) {
...
$interval(function() {
updateClock();
}, 1000);
...
});
因为函数updatelock
是在对象this
上定义的。当您在区间内调用它时,JS引擎无法为您找到函数定义。改为:
app.controller('ClockController',function($scope) {
function updateClock () {
$scope.clockTime = new Date();
};
setInterval(function () {
$scope.$apply(updateClock);
}, 1000);
updateClock();
});
顺便说一下,请使用该服务而不是setInterval
。这样,您就不需要显式调用$apply
:
app.controller('ClockController', function($scope, $interval) {
...
$interval(function() {
updateClock();
}, 1000);
...
});
您将什么称为父功能
?它是控制器的功能您将什么称为父功能
?它是控制器的功能您将什么称为父功能
?它是控制器的功能您将什么称为父功能
?它是控制器的功能