Как передать название модели в angularJS restful api
Я новичок в AngularJS, но уже некоторое время использую Backbone.
Я хочу создать повторно используемый API-интерфейс restful, которому я могу передать имя модели, чтобы использовать его для разных моделей.
На данный момент у меня есть:
angular.module('healthplanApiServices', ['ngResource'])
.factory('Api', function($resource) {
return $resource(base_url + 'api/:object/:id', {
id : '@id', object : 'actions'
}, {
query : {
method : 'GET',
isArray : true,
callback : "JSON_CALLBACK"
},
save : {
method : '@id' ? 'PUT' : 'POST',
isArray : true,
callback : "JSON_CALLBACK"
}
});
});
... который устанавливает модель как "действия". Тогда в моем контроллере я использую:
// get the collection
Api.query(function(r) {
$scope.actions = r;
});
$scope.toggleDone = function(a) {
a.done = !a.done;
//save an item
Api.save(a);
}
Это все нормально, но как передать имя модели (в данном случае "действия") для каждого типа модели: например, вместо того, чтобы поместить его в заводскую функцию следующим образом:
id : '@id', object : 'actions'
... а точнее что-то вроде:
var ActionApi = Api.setObject('actions');
ActionApi.query(function(r) {
$scope.actions = r;
});
ОБНОВЛЕНИЕ: я только нашел способ. Это может быть не лучшим, но это работает. Любые другие предложения будут приветствоваться! Просто добавьте атрибут объекта в модель:
Api.query({object: 'actions'}, function(r) {
$scope.actions = r;
angular.forEach($scope.actions, function(a) {
a.object = 'actions' });
});
Api.save(a);// also works
1 ответ
Вы можете попробовать https://github.com/klederson/ModelCore (ModelCore)
Его легко моделировать, структурировать и, конечно,... использовать.
model.$find({ filter : "John" },{},true); //to find all with query parameters
model.$get(1); //to retreive the user with id 1
model.$save()
model.$deelte();
И так далее.. оформить документацию