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 回答