Как передать динамический параметр в угловых $ресурс
Я хочу передать динамическое значение параметра default в $resource. Пожалуйста, загляните в поршень . Вот когда я прошел дефолтный парам на заводе как
app.factory('myFactory', ["$resource", function($resource) {
return $resource('http://google.com', {timeStamp : (new Date()).getTime()}, {
query : {
method : 'GET',
isArray : true,
cache : false
}
})
}]);
Я хочу, чтобы временная метка param по умолчанию была динамической. в настоящее время, когда я нажимаю на кнопкуRefresh , значение param всегда одинаковое (Check in console)
Мне нужна эта функциональность, потому что IE делает кэш наGET метод, и я не хочу кэшировать данные
3 ответа:
Это должно помочь вам.
app.factory('myFactory', ["$resource", function($resource) { return $resource('http://google.com', {}, { query : { method : 'GET', isArray : true, params : { ts : Date.now } // <-- new timestamp will be genrated and assigned to ts } }) }]);
При каждом вызове метода
myFactory.query()
в url-адресе будет отображаться строка запросаts
с текущим значением метки времени.
var app = angular.module('plunker', ['ngResource']); app.controller('MainCtrl', function($scope,myFactory) { $scope.refresh = function(){ myFactory.query({timeStamp : (new Date()).getTime()}).$promise.then(function(){}) } }); app.factory('myFactory', ["$resource", function($resource) { return $resource('http://google.com', {}, { query : { method : 'GET', isArray : true, cache : false } }) }]);
Код внутри функции не выполняется до тех пор, пока функция не будет вызвана. Однако в объявлении объекта все это выполняется по мере его создания. С таким же успехом вы могли бы иметь это.
app.factory('myFactory', ["$resource", function($resource) { return $resource('http://google.com', {timestamp: 1433865286924}, { query : { method : 'GET', isArray : true, cache : false } }) }]);
Правильный ответ по словам Lekhnath составляет
app.factory('myFactory', ["$resource", function($resource) { return $resource('http://google.com', {}, { query : { method : 'GET', isArray : true, params : { ts : Date.now } // <-- new timestamp will be genrated and assigned to ts } }) }]);
Или если мы хотим передать раздел param по умолчанию, это можно сделать как
app.factory('myFactory', ["$resource", function($resource) { return $resource('http://google.com', { ts : Date.now }, { // <-- new timestamp will be genrated and assigned to ts query : { method : 'GET', isArray : true } }) }]);