0
考慮下面的HTML爲什麼在控制器初始化時,表單對象在角度上不可用?
<div ng-app="myApp" ng-controller="myController">
<form name="myForm"></form>
</div>
和控制器文件
(function() {
'use strict';
angular
.module('myApp')
.controller('myController', myController);
myController.$inject = ['$scope', '$interval'];
function myController($scope, $interval) {
var myFormDetector = $interval(function() {
if ($scope.myForm) {
console.log('form exist');
$interval.cancel(myFormDetector);
} else {
console.log('form not exist');
}
}, 200)
}
})();
我觀察到form not exist
至少一次打印?
這是非常奇怪的,因爲我認爲呈現的順序是
compile
controller
link
這樣的時候controller
是intialized,compile
應該呈現HTML和注入$scope
?
我有什麼問題嗎?
父元素的控制器在子元素之前創建。一般來說,子元素應該與父元素「交談」,而不是相反。其他方式表明耦合。 –