【问题标题】:Ember retrieve last instert idEmber 检索最后插入的 id
【发布时间】:2013-12-07 00:00:09
【问题描述】:

在我看到的每个示例中,我们总是使用数据,例如我们是否知道下一个 ID 是什么。我正在构建一个多个用户将同时使用的 Web 应用程序。当用户单击“创建类别”按钮时,我会创建一条新记录,并将其发送到我的 API,并将其保存在数据库中。不幸的是,Ember 不知道我的新类别 ID。假设他打错了字。他点击“修改”。该应用程序不知道 ID,因此无法完成路线:product_id/edit。

我看到了两个解决方案:

  1. 我尝试过的一件事可能会解决我的问题,那就是在标题中返回 ID。所以我会发送我的数据,如果一切顺利,返回 Status 201 (Created),然后获取 Header 的内容并分配创建的 ID。在纸上看起来不错,但我不知道如何使用 Ember 获取标题的内容。

    App.CategoriesAddRoute = Ember.Route.extend({
        setupController: function(controller) {
            controller.newRecord(); 
        },
        actions: {
           save: function() {
                controller = this.controllerFor("category"); 
                // Here I'd like to use something like .then( getHeaderContent('id') ) 
                // and assign that value to the category                
                controller.get('content').save() 
                this.transitionTo('categories.index');
            }
        },
    });
    
  2. 使用新查询重新加载我的类别数据。我想避免这种情况,但如果我别无选择,我会这样做。

【问题讨论】:

    标签: ember.js ember-data


    【解决方案1】:

    保存新模型 (POST) 的标准做法是从服务器返回具有新 ID 的模型。服务器返回模型后,Ember Data 会更新模型,因此模型客户端应该有 id。

    【讨论】:

    • 你有任何链接来展示如何处理 POST 请求的好例子吗?
    • POST 的响应应该非常类似于 GET。这是 Ember Data 完成时的一些信息。 github.com/emberjs/data/blob/master/TRANSITION.md
    • 快速提问,PUT 请求是否也应该模仿 GET?
    • 回应,是的。 put/post 的请求由 ember 数据处理,您不必“建立”这些数据。
    猜你喜欢
    • 2015-09-30
    • 1970-01-01
    • 2010-12-31
    • 2016-10-06
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多