控制器不是单身人士。你有一个控制器的顶部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实例控制。 –