Доброго времени суток! Нужна помощь в решении задачи изменения параметра контроллера.
Пример контроллера событий:
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
});
};
}]);