【发布时间】:2016-03-02 00:12:12
【问题描述】:
我有一个经典场景:左侧是过滤器,右侧是产品列表。用户点击过滤器,产品列表刷新。
我使用 2 个局部视图,两个视图共享同一个控制器。
<div class="row">
<div ng-include="'/views/filters.html'"></div>
<div ng-include="'/views/products.html'"></div>
</div>
控制器调用与 elasticsearch 对话的 nodejs 后端。
.controller('AppCtrl', ['$scope', '$http', '$timeout', function($scope, $http, $timeout){
$http.get('/getAll')
.success(function(data) {
$scope.products = data.hits.hits;
})
.error(function(data) {
console.log('Error: ' + data);
});
$scope.filterClick = function($event, filterClicked) {
$http.get('/getSingleFilter', {
params: {
filter: filterClicked
}
})
.success(function(data) {
$timeout(function(){
$scope.products = data;
console.log($scope.products);
});
})
.error(function(data) {
console.log('Error: ' + data);
});
}
}]);
getAll 调用正常,products.html 显示所有产品。
getSingleFilter 虽然不会刷新列表。我确实看到控制台中打印了正确的列表,但视图没有刷新。
我错过了什么?
【问题讨论】: