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 获得;未捕获引用错误:未定义UpdateLock";AngularJS应用程序中出现错误_Javascript_Angularjs - Fatal编程技术网

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

您将什么称为
父功能
?它是控制器的功能您将什么称为
父功能
?它是控制器的功能您将什么称为
父功能
?它是控制器的功能您将什么称为
父功能
?它是控制器的功能