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

angular.js - angular中ng-init中定义值在控制器里面获取不到值

  1. 我的问题:
    如题: angular中ng-init中定义值在控制器里面获取不到值

  2. 相关代码:

<p class="container" ng-app="app" ng-controller="ctrl" ng-init="demo='风一样的男子'">
    <h1>ng-init</h1>
    <input ng-model="demo" type="text">
    demo = {{demo}}

    <button type="button" ng-click="demoClick()">button</button>
</p>
(function(angular) {
    'use strict';
    var app = angular.module('app', []).controller('ctrl', ctrl);

    function ctrl ($scope, $http) {
        console.log('直接获取: ' + $scope.demo); // undefined

        $http.post('/demo', {
            direction: $scope.demo // undefined
        });

        $scope.demoClick = function () {
            console.log('click: ' + $scope.demo); // 风一样的男子

            $http.post('/demo', {
            direction: $scope.demo // 风一样的男子
        });
        };
    }
}(angular));

WHY?

为情所困为情所困2735 Il y a quelques jours567

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

  • 世界只因有你

    世界只因有你2017-05-15 17:07:49

    Cela implique le processus de compilation et de liaison de chaque instruction. A noter que sur un même nœud, s'il existe une instruction ngController, il exécutera le processus de compilation avant toute autre instruction (sa priorité est de 500, alors que celle de ngInit est de 450). Par conséquent, lors de l'exécution de la fonction de liaison de ngController, qui est la fonction de contrôleur que nous voyons souvent, ngInit n'a pas terminé le processus de compilation, il ne peut donc naturellement pas obtenir la valeur de démo.

    http://stackoverflow.com/ques...

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

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

    La console n'a pas encore été initialisée, essayez la console en montre

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-15 17:07:49

    Si vous souhaitez accéder à la démo à l'emplacement ci-dessus. Je pense qu'il faudrait l'utiliser. $rootscope.demo ou $parentscope.demo

    Le problème ci-dessus devrait être un problème de portée.

    répondre
    0
  • Annulerrépondre