0
Я пытаюсь использовать следующий код для связи с успокоительной службой:Угловой ресурс с целочисленным параметром создает неправильный URL
$scope.makeRequest = function(){
params = {};
params['3'] = 'X';
params['length'] = 5;
var resource = $resource('/foo', {});
var result = resource.query(params, function(){
console.log(result);
});
}
Этот запрос работает, и вызывает ожидаемый URL: http://localhost:3000/foo?3=X&length=5
Однако, когда целое поле является значение поля «длина» минус один:
$scope.makeRequest = function(){
params = {};
params['4'] = 'X';
params['length'] = 5;
var resource = $resource('/foo', {});
var result = resource.query(params, function(){
console.log(result);
});
}
Этот фрагмент игнорирует поле «длина», и делает запрос на: http://localhost:3000/foo?4=X
Мои вопросы:
- Где это поведение взялось?
- Есть ли лучший способ сделать этот запрос? Могу ли я избежать множества целочисленных параметров, учитывая, что мне понадобится больше одного?
Это имеет тот же результат. Объект params создается правильно, проблема заключается в том, как ресурс делает запрос. И я никак не мог бы использовать это, потому что я хотел создать объект params динамически. – Alin
О, я вижу, но только одна мысль: в чем смысл строить объект params с числовыми значениями вместо строки, представляющей это число? Это имеет для вас какой-то смысл? –
На самом деле, это была проблема. Если значение для 'length' имеет строковый тип, оно работает. Спасибо, я до сих пор не знаю, почему это происходит. – Alin