为什么Backbone的collection create()方法不填充ID?

雅各布鲁法

在下面的视图方法中,如果我create()正确理解该方法,则模型将与服务器同步但是,console.logofthis.model.id仍会返回,undefined并且会this.model.isNew()返回truePOST在返回的JSON对象中显示一个ID,而模型对象的属性也显示一个ID,那么为什么它们不能正确反映在模型中?创建新视图时,需要设置ID。

submitForm: function( e ) {
  e.preventDefault();

  this.model.set( this.$( '.editForm' ).serializeObject() );

  if ( this.model.isNew() )   {
    collection.create( this.model );

    console.log( this.model, this.model.id, this.model.isNew() );

    new MyView({
      model: this.model
    }).render().appendNode();
  }   else   {
    this.model.save();
  }

  this.closeForm();
}
莱昂纳多·巴博萨(Leonardo Barbosa)

因此,Jacob,这里的问题只是在呈现视图之前,您需要等待服务器的响应。您的情况this.model.id将是undefined因为您的模型是新的,这意味着它尚未保存在服务器中。

因此,您可以做的是使用success.create函数回调我相信这样的事情会为您工作。

if (this.model.isNew()) {
  collection.create({
    // or you can use this.model (if it is an object)
    attribute_x: 'val',
    attribute_y: 'val'
  }, success: function(response){
    // here your model with have an id
    console.log(response);
    new MyView({
      model: response.model // check your response
    }).render().appendNode();             
  });
} else {
  new MyView({
    model: this.model
  }).render().appendNode();
}

因此,如您所见,在success回调中,我们渲染View如果您console.log做出响应,您将看到后端在创建模型时对您的响应。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么Map不扩展Collection接口

为什么NodeList不扩展Collection或Iterable?

为什么不Map#removeAll(Collection <?>)?

Java Map为什么不扩展Collection?

为什么Java Collection Framework不包含树和图

MDN的Object.create填充为什么不设置prototype.constructor呢?

为什么 asyncio.create_task 不运行该方法?

为什么这么多方法使用Collection而不是Iterable?

为什么这个形状不填充()?

为什么不填充Formik的“ touched”属性?

当方法的签名定义为Collection <class>时,为什么方法不能采用Collection <subClass>

为什么“是”方法不运行?

为什么当textarea不填充时,不更改样式?

为什么java.util.Collection不直接定义next(),hasNext()?

jQuery作用域-为什么不填充我的数组?

为什么不选择框填充?菜鸟 AJAX 问题

为什么url.Parse不填充URL.RawPath?

为什么不填充此HTTP请求的“响应”字段?

为什么在我发布POST时不填充我的DropDownListFor?

为什么按钮不拉伸以填充网格单元?

为什么我的图例不尊重父字段集的填充?

Hibernate为什么不填充此外键列

为什么我的“flex”div 不遵守填充权?

为什么我的填充函数不返回任何值?

为什么我的存储过程不执行带有某些ID的CLR方法?

为什么在java.util.Collection上有方法iterator()

为什么Queue的方法会引发异常,而其他Collection的类却不会?

为什么我们需要使用Collection.sort()方法对List进行排序?

为什么MongoDB集合中Phalcon\Mvc\Collection的delete()方法可能不起作用?