3

Ember データ 0.13 から 1.0.0 Beta 1 に変換しています。0.13 では、レコードの保存時に問題が発生したかどうかを知るために、 becomeError および becomeInvalid 状態を使用していました。

1.0.0 ではトランザクションがなくなり、エラーを処理するには save promise を使用する必要があります。下記参照:

 save: function() {
    this.get('model').save().then(function () {
        alert("Record saved");
      }, function () {
        alert("Problem");
      });
    }, 

上記では、検証エラーとその他すべてを区別したいと思います (0.13 での becomeError と becomeInvalid のように)。

エラーオブジェクトにアクセスする方法と、json 応答に含まれる検証エラーを読み取る方法はありますか? これが this.get('content.errors') 経由である前に ...

誰かがマークを助けてくれることを願っています

4

2 に答える 2

2

3 つのステップ:

エラーを適切な形式で返します。Rails アプリケーションの場合:

\# Rails controller, update function

format.json { render json: {errors: @post.errors.messages}, status: :unprocessable_entity }

promise にエラーを設定する

// app.js
save: function() {
  self = this;
  this.get('model').save().then(function () {
    alert("Record saved");
  }, function (response) {
    self.set('errors', response.responseJSON.errors);
  });
}

ハンドルバー テンプレートにエラーを表示する

<\!-- index.html -->
{{input type="text" value=title}}<span class="alert-error">{{errors.title}}</span>
于 2013-12-27T05:09:46.107 に答える