1

django で ng-resource を使用すると、末尾のスラッシュが常に削除されるため、問題が発生します。だから私はhttps://stackoverflow.com/users/192810/misko-heveryガイドhttps://stackoverflow.com/a/11850027に従って、独自のリソースを作成します。私のコードがエラー コールバック関数を実装する適切な方法であるかどうかを尋ねたいですか? IE: このようなサーバーからの応答 {err : "その本は既に存在します!"}

angular.module('myApp').factory('Book', function($http) {
  var Book = function(data) {
    angular.extend(this, data);
  }

  Book.get = function(id) {
    return $http.get('/Book/' + id).then(function(response) {
      return new Book(response.data);
    });
  };

  Book.prototype.create = function() {
    var book = this;
    return $http.post('/Book/', book).then(function(response) {
      book.id = response.data.id;
      return book;
    });
  }

  return Book;
});

このように create メソッドを変更してもよろしいですか?

Book.prototype.create = function() {
    var book = this;
    return $http.post('/Book/', book).then(function(response) {
      book.id = response.data.id;
      return book;
    }, function(response){
      book.err = response.err
      return book;
    });
  }

私はこのようにコントローラを変更します

var AppController = function($scope, Book) {
  $scope.err = ""
  // to create a Book
  var book = new Book();
  book.name = 'AngularJS in nutshell';
  book.create().then(function(){
    //check error, if exists pass the error message to scope
    if(typeof book.err !== "undefined"){
      $scope.err = book.err
    }
  );

};
4

0 に答える 0