Rumah > Soal Jawab > teks badan
我的问题:
如题: angular中ng-init中定义值在控制器里面获取不到值
相关代码:
<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?
世界只因有你2017-05-15 17:07:49
Ini melibatkan proses penyusunan dan penyambungan setiap arahan. Perlu diingatkan bahawa pada nod yang sama, jika terdapat arahan ngController, ia akan melaksanakan proses penyusunan sebelum sebarang arahan lain (keutamaannya ialah 500, manakala keutamaan ngInit ialah 450). Oleh itu, apabila melaksanakan fungsi pautan ngController, yang merupakan fungsi pengawal yang sering kita lihat, ngInit belum menyelesaikan proses penyusunan, jadi ia secara semula jadi tidak dapat memperoleh nilai demo.
http://stackoverflow.com/ques...
PHP中文网2017-05-15 17:07:49
Jika anda ingin mengakses demo di lokasi di atas. Saya fikir ia harus digunakan. $rootscope.demo atau $parentscope.demo
Masalah di atas sepatutnya menjadi masalah skop.