所以我做了一些實驗,在同一個$範圍內創建一個在2個不同選擇框上的ng-change行爲。一個是在ng-include指令中,另一個是在ng-include指令之外,有趣的部分是當我實現數據綁定的時候它變成了好的,但是當我試圖看看我的控制檯選項卡時它會以不同的方式返回
的NG-包括指令外的一個是好的,而一個內的NG-包括指令總是返回值「a」或靜態值
這是的index.html樣機
<select ng-model="list" ng-change="changeOutsideTemplate()">
<option value="a">A</option>
<option value="b">B</option>
</select>
{{list}}
<div ng-include="test"></div> //this scope caries test.html
這是test.html樣機
<select ng-model="list" ng-change="changeInsideTemplate()">
<option value="a">A</option>
<option value="b">B</option>
</select>
{{list}}
這是控制器
var app = angular.module('myApp', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.test = "test.html";
$scope.list = "a";
$scope.changeInsideTemplate = function() {
console.log($scope.list); //always returns 'a'
}
$scope.changeOutsideTemplate = function() {
console.log($scope.list); //this is the correct way
}
});
,這是工作example
爲什麼你認爲這個問題的原因是什麼?任何人都在關心精心製作?
這是正確的。或者更好的解決方法是使用'$ scope.list = {value:'a'}'better和'ng-model =「list.value」'。 – dfsq
上帝現在你提到它我可以看到有關文檔的指令信息..哇有趣,所以這就是爲什麼它不工作就像它應該工作..感謝您的解釋,我現在明白了! –
順便說一句,如果案件是這樣的? http://plnkr.co/edit/KjHSgyeLQ2CYgnsFrO3J?p=preview –