У меня есть ситуация, когда я получаю данные о прокрутке из службы. Теперь мне нужно отфильтровать данные, используя популярные данные и последний пост.
Вот мой сервис:
App.factory('Serviec', function ($http, $rootScope) {
var Hututoo = function () {
this.items = [];
this.busy = false;
this.after = 'Serviec_0';
};
Serviec.prototype.nextPage = function () {
if (this.busy) return;
this.busy = true;
// return undefined
console.log($rootScope.listtype);
$http.get(baseurl + 'ajax/gethome?after=' + this.after).success(function (data) {
var items = data;
for (var i = 0; i < 5; i++) {
this.items.push(items[i]);
// debugger;
}
this.after = "Hututoo_" + this.items.length;
this.busy = false;
}.bind(this));
};
return Serviec;
});
В контроллере:
$scope.data= new Serviec();
$scope.listtype= 'latest';
$scope.changelist = function(str){
$rootScope.listtype = str;
$scope.data.items=[];
$scope.data.after = 'Serviec_0';
$http.post(baseurl+"ajax/gethome","after="+$scope.hututoo.after+"&list="+str).success(function(data){
$scope.data.items = data;
});
}
HTML
<li ng-click="expression = 'latest';changelist('latest');" ng-class="{latest_icon:expression == 'latest'}">Latest Hoot</li>
<li ng-click="expression = 'popular';changelist('popular');" ng-class="{popular_icon:expression == 'popular'}">Popular Hoots</li>
Таким образом, с помощью этих кликов мне нужно заказать данные. Мне нужно сделать http-вызов, чтобы получить данные в соответствии с кликом пользователя.
Я думал, что могу сделать данные о прицеле, которые определяют тип листинга, и получить его на заводе.
Как я могу внедрить этот объем в Serviec Factory. Пробовал через rootscope. изначально тип списка установлен на last , но он показывает undefined. Итак, каким будет лучший способ добиться этого?
Обновление:
Теперь я могу получить доступ к данным области в службе angular, но здесь возникает небольшая проблема: щелкните по списку, предыдущий элемент в области не становится пустым, а новые элементы помещаются в область.
Таким образом, спрос находится в списке, нажмите, чтобы предыдущие данные стали равными нулю, а новые попали в область действия.