问题描述
<!doctype html><html ng-app> <head><script type='text/javascript' src='http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js'></script> </head><body> <p ng-controller = 'MyController'><h1>hello {{ clock.now }}!</h1> </p> <script>function MyController($scope) { $scope.clock = {now: new Date() }; var updateClock = function() {$scope.clock.now = new Date(); }; setInterval(function() {$scope.$apply(updateClock); }, 1000); updateClock();}; </script></body></html>
问题解答
回答1:API变化了1.3以上不允许global controller(估计你的书比较老)
可以这个简单粗暴直接降低版本
<!doctype html><html ng-app><head> <script type='text/javascript' src='http://apps.bdimg.com/libs/angular.js/1.2.6/angular.js'> </script></head><body><p ng-controller='MyController'> <h1>hello {{ clock.now }}!</h1></p><script> function MyController($scope) {$scope.clock = { now: new Date()};var updateClock = function () { $scope.clock.now = new Date();};setInterval(function () { $scope.$apply(updateClock);}, 1000);updateClock(); }</script></body></html>
或者这个 改成升级之后推荐的写法
<!doctype html><html ng-app='app'><head> <script type='text/javascript' src='http://apps.bdimg.com/libs/angular.js/1.4.6/angular.js'> </script></head><body><p ng-controller='MyController'> <h1>hello {{ clock.now }}!</h1></p><script> angular.module(’app’, []) .controller(’MyController’, [’$scope’, function MyController($scope) {$scope.clock = { now: new Date()};var updateClock = function () { $scope.clock.now = new Date();};setInterval(function () { $scope.$apply(updateClock);}, 1000);updateClock(); }]);</script></body></html>回答2:
你这样代码只会执行一次,应该在每次执行update的时候自动预订下次更新才能达到每秒变化的目的。这本书我没看过,但我估计你的大括号抄错了位置。你这样试试?
<!doctype html><html ng-app> <head><script type='text/javascript' src='http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js'></script> </head><body> <p ng-controller = 'MyController'><h1>hello {{ clock.now }}!</h1> </p> <script>function MyController($scope) { $scope.clock = {now: new Date() }; var updateClock = function() {$scope.clock.now = new Date();setInterval(function() { $scope.$apply(updateClock);}, 1000); }; updateClock();}; </script></body></html>