搜尋

首頁  >  問答  >  主體

angular.js - 資料綁定問題,如何達到每過一秒更新clock.now資料的目的,顯示的一直是clock.now。這是敲書上的程式碼,問題出在哪?

雷雷
漂亮男人漂亮男人2849 天前577

全部回覆(2)我來回復

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-15 17:05:37

    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>

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-15 17:05:37

    你這樣程式碼只會執行一次,應該在每次執行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>

    回覆
    0
  • 取消回覆