0

ember 1.0 と ember-data 1.0 Beta 2.0 を使用してサンプル アプリケーションを作成しています。RESTAdapter を使用してバックエンド サーバーに接続します。レコードを保存しようとすると、最初の送信時に常に失敗ハンドラーが呼び出されます。しかし、レコードは実際には必ずバックエンドに保存されます。サーバーからの送信に対する応答には、id で設定された作成されたエンティティが含まれます。開発者ツールでコードをデバッグしようとすると、実際にはルート トランジションのコードが実行されますが、トランジションが完了する前に [追加] ビューに戻ります。jQuery グローバル イベント ハンドラからのコールバックが問題を引き起こしているようです。

これが私が使用しているコードです

App.AddResourceRoute = App.ResourceManagerRoute.extend(
{
    model: function () {
        return this.store.createRecord('Resource');
    },
    actions: {
        save: function () {
            this.modelFor('AddResource').save().then(function (resource) {
                App.Router.router.transitionToRoute('Resources');
            }, function (reason) {
                alert('Failure reason:' + reason);
            });
        }
    }
}); 

私のコードの何が問題なのかを見つけるのを手伝ってください。前もって感謝します

4

1 に答える 1

0

App.Router.router.transitionToRoute('Resources');呼び出しからエラーが発生していると思います。次のように更新してみてください。

App.AddResourceRoute = App.ResourceManagerRoute.extend(
{
    model: function () {
        return this.store.createRecord('Resource');
    },
    actions: {
        save: function () {
            var route = this;
            this.modelFor('AddResource').save().then(function (resource) {
                route.transitionTo('Resources');
            }, function (reason) {
                alert('Failure reason:' + reason);
            });
        }
    }
});

transitionTo(someRoute)ルート内、またはtransitionToRoute(someRoute)コントローラー内で使用する必要があります

于 2013-10-21T18:29:40.923 に答える