Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.12.2015, 09:51
Аспирант
Отправить личное сообщение для kingstakh Посмотреть профиль Найти все сообщения от kingstakh
 
Регистрация: 21.02.2014
Сообщений: 37

Динамическое изменение параметра контроллера
Доброго времени суток! Нужна помощь в решении задачи изменения параметра контроллера.

Пример контроллера событий:
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

      });
    };
}]);

Последний раз редактировалось kingstakh, 30.12.2015 в 10:01.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое изменение цветов div Vladimir93 Общие вопросы Javascript 0 14.11.2014 14:55
Возможно ли динамическое изменение шаблона rowBodyTpl? SemKos ExtJS 1 31.08.2012 08:58
Динамическое изменение фона ячейки CyMKuH Элементы интерфейса 2 11.07.2011 15:19
Динамическое изменение <input text> baal1988 Events/DOM/Window 4 24.08.2008 17:17
Динамическое изменение размеров изображения Макс Элементы интерфейса 7 21.07.2008 16:55