1

私は非常に一般的な状況を抱えています。それを表す用語があるとすれば、私はそれを認識していません。

レコードには、id、enabled、text などのフィールド
があり、 レコードを有効または無効にする POST /record/enable があります。これは、サーバー上でより大きなプロセスを呼び出すためです。

そのため、通常の POST からのコールバックを受信したら、record.enabled をローカルで true に更新します。これはトランザクションの一部であってはなりません。直接更新する必要があります。

これを達成する方法は?? または、そのような要件のより良い代替手段は何ですか?

4

2 に答える 2

0

これらの行に沿って何かを行う必要があると思います:

App.PObject = DS.Model.extend({
    id: DS.attr('number'),
    name: DS.attr('string'),

    nestedObject: function() {
        if (!this.nestedObj) {
            this.nestedObj = Ember.Object.create({
                active: false
            });
        }
        return this.nestedObj
    }.property()

});

これまで見てきたように、 Model は、 として定義されている属性がDS.attr変更された場合にのみダーティです。

于 2012-09-10T06:50:36.677 に答える
-1

編集:後で気づいた、この解決策は機能しません。

私の問題の適切な用語は次のとおりです。一時的なフィールド
オブジェクトの一時的なフィールドは、シリアライゼーション/デシリアライゼーションでは無視されます(Java ORMが一時的なフィールドを無視するように)http://en.wikipedia.org/wiki/Transient_(computer_programming

私は解決策を考え出しました。とてもシンプルです。

App.PObject = DS.Model.extend({
    id: DS.attr('number'),
    name: DS.attr('string'),
    //will not be part of Ember-data persistence, but will be populated on GET
    enabled: null
});

属性ではないオブジェクト (レコード) プロパティは無視されます。

于 2012-09-10T08:34:01.813 に答える