Передача параметра в службу Onsen

Мне явно не хватает чего-то базового с onsen/angular, но я не понимаю, как я могу передать параметр в службу, которая запрашивает БД. Все нормально, когда я жестко кодирую запрос вместо использования параметра «id»:

.factory('Inscription', function(DB) {
    var self = this;

    self.all = function(id) {
            return DB.query('SELECT * FROM inscription where project_id = ? limit 100', [3])
            .then(function(result){
                    return DB.fetchAll(result);
            });
    };

но я не уверен, как динамически передать параметр id в этот запрос. Соответствующий код контроллера:

.controller('InscriptionsCtrl', function($scope, Inscription) {
    $scope.inscriptions = [];
    $scope.inscription = null;
    // Get all the project inscriptions
    Inscription.all().then(function(inscriptions) {
            $scope.inscriptions = inscriptions;
    });

который используется в списке:

 <ons-template id="showProject.html">
   <ons-page>
      <ons-list ng-controller="InscriptionsCtrl">
        <ons-list-item ng-repeat="inscription in inscriptions" ng-click="navi.pushPage('showInscription.html')">
            {{inscription.title}} - {{inscription.description | limitTo:50}}...
        </ons-list-item>
      </ons-list>
   </ons-page>
 </ons-template>

Этой странице со списком передается идентификатор проекта для использования в запросе БД:

$scope.ons.navigator.pushPage('showProject.html', {project_id: id});

Я просто не знаю, как передать этот идентификатор контроллеру, чтобы сформировать правильный запрос.


person Richard    schedule 24.11.2014    source источник


Ответы (1)


Параметры, которые вы используете при отправке страницы, будут привязаны к объекту страницы.

В контроллере нажатой страницы вы можете сделать:

var id = myNavigator.getCurrentPage().options.project_id;

Inscription.all(id).then(function(result) ...
person Andreas Argelius    schedule 25.11.2014