Здравствуйте! Есть контроллер по работе с сервисами(услуги). В него необходимо допилить задачу удаления и добавления в избранное сервисов. Я вот не знаю как лучше это сделать. Нужно передавать на бек айди по клику на сервис, или как то в $scope все записывать и отдавать\принимать массивом (нужно будет еще потом выводить конечно же список избранных в отдельной категории). Так же наверное нужно отдавать айди пользователя?
код контроллера
ServicesCtrl.$inject = ['$rootScope', '$scope', '$state', '$stateParams', 'PortalApi', 'Locations', 'configs'];
function ServicesCtrl($rootScope, $scope, $state, $stateParams, PortalApi, Locations, configs) {
var categoryId = $stateParams.categoryId;
$scope.category = $stateParams.categoryId;
$scope.searchServices = search;
$scope.subscribe = $stateParams.subscribe;
init();
var off = 12;
$scope.loadMore = function() {
$scope.preLoader = true;
var data = {
category: !categoryId || categoryId === 'all' ? 0 : parseInt(categoryId),
sortByPayments: true,
offset: off
};
data.location = Locations.location.id;
if ($stateParams.subscribe) {
data.twoStep = true;
}
PortalApi.searchServices(data)
.then(function(response) {
$scope.services = $.merge($scope.services,response);
$scope.preLoader = false;
if(response.length < 12){
$scope.services_new = false;
}else{
$scope.services_new = true;
}
off = off + 12;
})
};
function search(query) {
var data = {
query: query,
category: !categoryId || categoryId === 'all' ? 0 : parseInt(categoryId),
sortByPayments: true
};
data.location = Locations.location.id;
off = 12;
$scope.preLoader = true;
if ($stateParams.subscribe) {
data.twoStep = true;
}
PortalApi.searchServices(data)
.then(function(response) {
$scope.services = response;
if(response.length < 12){
$scope.services_new = false;
}else{
$scope.services_new = true;
}
$scope.preLoader = false;
})
}
$scope.toService = function(serviceId) {
var data = {
serviceId: serviceId,
fields: [],
amount: 0,
autoCheck: false
};
$scope.preLoader = true;
if ($stateParams.subscribe) {
data.subscribe = true;
}
$state.go('pages.payment', data);
};
$scope.nonContractExternal = function() {
var nonContractExternal = configs.payments_config.service.nonContractExternal;
data = {
serviceId: nonContractExternal
};
$state.go('pages.payment', data);
};
//favorites
/* $http.get('http://localhost:3001/services')
.success(function (result) {
console.log('success', result);
$scope.services = result;
})
.error(function (result) {
console.log('error');
});*/
$scope.addFavorite = function(serviceId) {
//......
};
//end favorites
function init() {
search($scope.query);
}
var listenerChangeLang = $rootScope.$on('changeLang', init);
var listenerChangeLocation = $rootScope.$on('changeLocation', init);
$scope.$on('$destroy', function () {
listenerChangeLang();
listenerChangeLocation();
});
}
module.exports = ServicesCtrl;
код html переключения по категориям
<ul class="serv-tree-nav">
<li ui-sref-active="active"><a ui-sref="pages.services({categoryId: 'all'})"><span class="pic"><img src="../images/serv-tree-item-1.svg" alt=""></span><span class="text">{{'PAYMENTS.ALL_PAYMENTS' | translate}}</span></a></li>
<li ui-sref-active="active"><a ui-sref="pages.cardtocard"><span class="pic"><img src="../images/serv-tree-item-2.svg" alt=""></span><span class="text">{{'PAYMENTS.CARD_TO_CARD' | translate}}</span></a></li>
<li ui-sref-active="active"><a ui-sref="pages.services({categoryId: 33})"><span class="pic"><img src="../images/serv-tree-item-3.svg" alt=""></span><span class="text">{{'PAYMENTS.MOBILE' | translate}}</span></a></li>
<li ui-sref-active="active"><a ui-sref="pages.services({categoryId: 44})"><span class="pic"><img src="../images/serv-tree-item-4.svg" alt=""></span><span class="text">{{'PAYMENTS.HOSTING' | translate}}</span></a></li>
<li ui-sref-active="active"><a ui-sref="pages.services({categoryId: 39})"><span class="pic"><img src="../images/serv-tree-item-5.svg" alt=""></span><span class="text">{{'PAYMENTS.WEBMONEY' | translate}}</span></a></li>
<li ui-sref-active="active"><a ui-sref="pages.services({categoryId: 34})"><span class="pic"><img src="../images/serv-tree-item-6.svg" alt=""></span><span class="text">{{'PAYMENTS.INTERNET' | translate}}</span></a></li>
<li ui-sref-active="active"><a ui-sref="pages.services({categoryId: 40})"><span class="pic"><img src="../images/serv-tree-item-7.svg" alt=""></span><span class="text">{{'PAYMENTS.GAMES' | translate}}</span></a></li>
<li ui-sref-active="active"><a ui-sref="pages.services({categoryId: 37})"><span class="pic"><img src="../images/serv-tree-item-8.svg" alt=""></span><span class="text">{{'PAYMENTS.COMMUNAL' | translate}}</span></a></li>
<li ui-sref-active="active"><a ui-sref="pages.services({categoryId: 38})"><span class="pic"><img src="../images/serv-tree-item-9.svg" alt=""></span><span class="text">{{'PAYMENTS.CREDIT' | translate}}</span></a></li>
<li ui-sref-active="active"><a ng-click="nonContractExternal()"><span class="pic"><img src="../images/recvizits.svg" alt=""></span><span class="text">{{'PAYMENTS.RECVIZ' | translate}}</span></a></li>
<li ui-sref-active="active" ng-if="auth.user"><a ui-sref="pages.services({categoryId: 'favorites'})"><span class="pic"><img src="../images/serv-tree-item-9.svg" alt=""></span><span class="text">{{'PAYMENTS.FAVORITE' | translate}}</span></a></li>
</ul>
Виртуальный выделенный сервер (VDS) становится отличным выбором
На странице нужно выводить дату следующего понедельникаНапример
Для вывода дня и месяца следующего понедельника используется код: