recherche

Maison  >  Questions et réponses  >  le corps du texte

angulaire.js - Problème de liaison de données, comment atteindre l'objectif de mise à jour des données clock.now chaque seconde, l'affichage est toujours clock.now. C'est le code du livre. Quel est le problème ?

<!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>
漂亮男人漂亮男人2849 Il y a quelques jours578

répondre à tous(2)je répondrai

  • 曾经蜡笔没有小新

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

    L'API a changé vers la version 1.3 ou supérieure et n'autorise pas les contrôleurs globaux (je suppose que votre livre est plus ancien)

    Vous pouvez directement réduire la version de cette manière simple et grossière

    <!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>

    Ou remplacez-le par la méthode d'écriture recommandée après la mise à niveau

    <!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>

    répondre
    0
  • 过去多啦不再A梦

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

    Votre code ne sera exécuté qu'une seule fois. Il devrait automatiquement réserver la prochaine mise à jour à chaque fois que la mise à jour est exécutée pour atteindre l'objectif de modifications par seconde.
    Je n’ai pas lu ce livre, mais je suppose que votre appareil dentaire est dans la mauvaise position.
    Voudriez-vous essayer ceci ?

    <!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>

    répondre
    0
  • Annulerrépondre