4

POST を介して API にオブジェクトを送信し、そのオブジェクトを表示するルートに移行しています。API は、POST でオブジェクトの 1 つ以上のフィールドを変更し、更新された情報を要求応答で返します。

表示されるデータは、API への POST 前の元のデータです。コンソールから、ember-data が API から更新された情報を受け取っていることがわかります。正しい情報が表示されるように、どうすれば ember にオブジェクトを強制的に「更新」させることができますか?

4

2 に答える 2

3

マット。Yehuda Katz は、この機能を提供するユーザーに返信を投稿しました。

https://stackoverflow.com/a/14183507/506230

基本的に、レコードを作成し、適用し、保存してから再読み込みします。

saveMessage: function(text){
    var acct = Social.Account.find(this.get("id")),
        msg = Social.store.createRecord(
                    Social.Message,
                    {
                        text: text,
                        account: acct,
                        created: new Date()
                    }
                );

    acct.get("messages").addObject(msg);
    Social.store.commit();

    var timeoutID = window.setTimeout(function(){
        __msg.reload();__
        console.log('reloading');
    }, 250);
}
于 2013-03-05T21:58:08.487 に答える
1

ember は実際には適切に動作しており、追加の作業は必要ないことがわかりました。問題は、モデルの計算されたプロパティと同じ名前でコントローラーに変数を設定していたことです。計算されたプロパティではなく、コントローラの変数の値が表示されていました。コントローラー変数の名前を変更すると、追加のコードなしで問題が解決されました。

于 2013-03-06T19:53:18.300 に答える