Динамическое изменение параметра контроллера
Доброго времени суток! Нужна помощь в решении задачи изменения параметра контроллера.
Пример контроллера событий: app.controller('eventController', [ '$http', '$scope', function($http, $scope){ $scope.url = 'http://domain.com/get_events/?today'; $scope.eventItems = []; $scope.pullEvents = function(){ $http.jsonp($scope.url +'&callback=JSON_CALLBACK').success(function(response) { // Здесь обрабатывается JSON }); }; }]); Проблема в следующем, url имеет несколько параметров для событий, события на сегодня, завтра, выходные. Исходя из этого url имеет вид: http://domain.com/get_events/?today http://domain.com/get_events/?tomorrow http://domain.com/get_events/?weekend На данный момент у меня для каждого url свой контроллер и своя страница, которая парсит данные. Но контроллеры абсолютно одинаковые и при этом немаленькие, по 80 строк, в итоге 240 строк кода, по сути одинакового. Есть ли вариант использовать один контроллер и одну страницу с которой, скажем, кнопками изменять параметр контроллера, подставляя в него ?today, ?tomorrow, ?weekend Пример страницы <ons-page ng-controller="eventController"> <ons-toolbar> <div class="left"> <ons-back-button>Back</ons-back-button> </div> <div class="center">Header</div> </ons-toolbar> <div class="app-page"> <div class="navigation-bar"> <div class="navigation-bar__center"> <!-- segment control --> <div class="button-bar"> <div class="button-bar__item"> <input type="radio" name="navi-segment-a" checked> <div class="button-bar__button" ng-model="hash" value="today" data-ng-init="pullEvents()">Сегодня</div> // Активная изначально ?today </div> <div class="button-bar__item"> <input type="radio" name="navi-segment-a" ng-model="hash" ng-click="pullEvents()" value="tomorrow"> <div class="button-bar__button">Завтра</div> // Конроллер работает с ?tomorrow </div> </div> </div> </div> <p>Здесь контент</p> </div> </ons-page> Контроллер который себе представляю, но не знаю как сделать: app.controller('eventController', [ '$http', '$scope', function($http, $scope){ $scope.url = 'http://domain.com/get_events/?'; $scope.hash = ''; $scope.eventItems = []; $scope.pullEvents = function(){ $http.jsonp($scope.url + $scope.hash + '&callback=JSON_CALLBACK').success(function(response) { // Здесь обрабатывается JSON }); }; }]); |
Часовой пояс GMT +3, время: 00:44. |