Maison > Questions et réponses > le corps du texte
Ma question :
Comme dans le titre : La valeur définie dans ng-init en angulaire ne peut pas être obtenue dans le contrôleur
Codes associés :
<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));
POURQUOI ?
世界只因有你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...
过去多啦不再A梦2017-05-15 17:07:49
La console n'a pas encore été initialisée, essayez la console en montre
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.