У меня есть Django RESTful API , который поставляется с MySQL DB и AngularJS веб-интерфейсом.
Для одного из включенных Django приложений я создал AngularJS Сервис с методом GET
для выполнения запросов из AngularJS Контроллер .
Я до сих пор работаю, так что я могу получить массив всех Resource
объектов в соответствующей таблице БД, поэтому я могу перебирать его, когда я ищу конкретный c entry.
Но я боюсь, что итерации - пустая трата вычислительных ресурсов, поэтому мне было интересно, могу ли я изменить AngularJS Service
таким образом, чтобы он возвращал только тот объект, который я ищу.
В таблице БД есть поле с именем id
, которое является единственным, к которому я могу получить прямой доступ, так сказать. Но я хотел бы сделать запрос для записи с выбранным значением в поле owner_id
Следующий код показывает, как мне удалось получить вышеупомянутый массив:
Служба для упомянутого приложения:
angular.module('MyAPI').factory('App1', function($resource){
return $resource('/api/App1/:id', {id: '@id'}, {
query: {
method: "GET",
isArray: true,
}
});
});
И это от соответствующего контроллера:
angular.module('MyAPI')
.controller('MyApp1Controller', function(App1, $sce,$rootScope,$scope,$state,$stateParams,$filter){
...
App1.query().$promise.then(function(data) {
$scope.app1= data;
});
Я пытался пройти все изменилось с помощью метода query()
в контроллере, и я также попытался изменить параметры для id
в Service , где возвращается $resources
. Но единственное, что сработало, это способ, который я упомянул выше (с итерацией по всей таблице БД).
Как мне выполнить sh получение одного элемента из таблицы с указанным значением c в конкретное c поле БД?