控制器不是單身人士。你有一個控制器的頂部div,第二個div的第二個控制器。頂部div的一個範圍,底部div的一個範圍。
這兩個控制器都有相同的名稱,但是您最後一次將控制器函數調用兩次。
你可能要考慮解決你的問題的一些選項:
選項1)使用父範圍。
ng-model="$parent.search"
{{$parent.search}}
選項2)使用根範圍。
ng-model="$root.search"
{{$root.search}}
選項3)在服務存儲該值。
服務是單身人士。如果您鍵入myService.search = $scope.search
,則該值可以從另一個控制器讀取。
你不會看到一個服務變量,所以也許你想在這裏使用觀察者模式。
app.service("search", function() {
var listerners = [];
this.register = function(listener) {
listerners.push(listener);
};
this.update = function(searchValue) {
for(var i in listerners) {
listerners[i](searchValue);
}
};
});
app.controller("UserController", function($timeout, search){
search.register(function(searchValue) {
$timeout(function(){
$scope.search = searchValue;
});
});
$scope.$watch('search', function (newVal, oldVal, scope) {
search.update(newVal);
});
});
選項4)廣播新值。
$scope.$watch('search', function (newVal, oldVal, scope) {
$rootScope.$broadcast('search', newVal);
});
$scope.$on('search', function(event, data) {
$scope.search = data;
});
你有一個'$ scope.search'變量? – davidkonrad
由於每個div都有自己的$ scope,並且由其自己的UserController實例控制。 –