2014-09-19 4 views
0
angular.module('app') 
    .factory('Answers', function ($resource, $routeParams, $location) { 
    return $resource('api/answers?questionid=' + $routeParams.questionId, { 
     answerId: '@_id' 
    }, { 
     update: { 
     method: 'PUT' 
     } 
    }); 
    }); 

$scope.findAnswers = function() { 
    Answers.query(function(answers) { 
    $scope.answers = answers; 
    }); 
}; 

Похоже, что переменная $routeParams не обновляется, так как я перемещаюсь по своему приложению по различным маршрутам. Это случай с услугами? Я предполагаю, что я должен определить переменную в своем контроллере, а затем передать ее в мою службу?Угловая фабрика routeParam переменная не меняется

EDIT:

angular.module('intquestApp') 
    .factory('Answers', function ($resource, $routeParams, $location) { 
    return { 
     get: function(questionId) { 

      return $resource('api/answers?questionid=' + questionId, { 
      update: { 
       method: 'PUT' 
      } 
      }); 
     } 
    }; 
    }); 

    Answers.get($routeParams.questionId, function(answers) { 
    console.log(answers); 
    $scope.answers = answers; 
    }); 

ответ

0

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

Смотрите здесь: Use $routeParams in service

так внутри контроллера:

Answers.get(passRouteParamValueHere, function(answers) { 
    $scope.answers = answers; 
}); 

EDIT

Почему у вас update внутри get? Вот то, что вы могли бы попробовать, но не проверял:

.factory('Answers',['$resource', function ($resource) { 
    return $resource('/api/answers/?questionid=' + questionId, {}, { 
    get: { method: 'GET'} 
    }); 
}]) 

, но я предпочитаю такой подход:

.factory('Answers',['$resource', function ($resource) { 
    return $resource('/api/answers/:qid', {}, { 
    get: { method: 'GET'} 
    }); 
}]) 

, а затем:

Answers.get({qid: questionIDFromRouteParam}, function(answers) { 
    $scope.answers = answers; 
}); 

Просто немного очистителя

+0

Отредактировано мой вопрос к тому, что у меня сейчас ... ничего не возвращается. Что-то синтаксически отключено? –

+0

Передано. Посмотрите еще раз, jsut забыл вывести его из заголовка сервиса. –

+0

Разве это не сработало для вас? – tommyd456

Смежные вопросы