документация Angular-Resource говорит о параметрах:
Если какое-либо значение параметра является функцией, оно будет выполняться каждый раз, когда для запроса необходимо получить значение параметра (если параметр не был переопределен).
К сожалению, у меня это не работает, функция вызывается только один раз при инициализации ресурса.
Мой случай: у меня есть глобальное состояние приложения, которое вы можете выбрать в верхней части навигации приложения. Это состояние влияет на параметр запроса в большинстве вызовов. (например, дата, на которую вызов действителен). Я поддерживаю это глобальное состояние в сервисе.
Мои сервисы (слой модели) выглядят так:
function($resource, ApplicationState) {
return $resource('test/:_id', {
date: ApplicationState.getCurrentTime()
}, {
get: {
method: 'GET'
}
});
}
Я ожидаю, что ApplicationState.getCurrentTime()
будет вызываться при каждом вызове get. Он вызывается только один раз.
Я создал plunkr в качестве примера. Откройте консоль отладки браузера, чтобы увидеть, что ApplicationState.getCurrentTime()
вызывается только один раз, а не каждый раз, когда вы нажимаете кнопку.
http://plnkr.co/edit/qeoIUuzFCqnQNdnYp5ZX?p=preview
Что я делаю неправильно? Есть ли лучший способ ввести динамические параметры в некоторые ресурсы? Я знаю концепцию перехватчиков запросов, но мне это нужно только для некоторых сервисов, а не для всех.
Спасибо за вашу помощь!