を使用せずに AngularJS でサーバー データ ソースに接続する推奨方法は何ですか$resource
。
次$resource
のような多くの制限があります:
- 適切な未来を使用していない
- 柔軟性が足りない
ベストアンサー1
バックエンドと通信するときに $resource が適切でない場合があります。ここでは、リソースを使用せずに $resource のような動作を設定する方法を示します。
angular.module('myApp').factory('Book', function($http) {
// Book is a class which we can use for retrieving and
// updating data on the server
var Book = function(data) {
angular.extend(this, data);
}
// a static method to retrieve Book by ID
Book.get = function(id) {
return $http.get('/Book/' + id).then(function(response) {
return new Book(response.data);
});
};
// an instance method to create a new Book
Book.prototype.create = function() {
var book = this;
return $http.post('/Book/', book).then(function(response) {
book.id = response.data.id;
return book;
});
}
return Book;
});
すると、コントローラー内で次の操作が可能になります。
var AppController = function(Book) {
// to create a Book
var book = new Book();
book.name = 'AngularJS in nutshell';
book.create();
// to retrieve a book
var bookPromise = Book.get(123);
bookPromise.then(function(b) {
book = b;
});
};