如何使用骨干网在对象的特定嵌套数组中设置新模型信息?

造型师

提交时,我有一个简单的联系表单,应该在模型的contacts部分中设置值,我对模型所做的设置很少/保存很少,所以我想知道是否有什么特别要设置的特定部分模型?

要保存的JS数据(myNewContactObject)

{
  "name": "Joe Bloggs",
  "email": "[email protected]",
  "telephone": "0123456789"
}

应保存到模型的嵌套触点数组,示例结构:

[
  {
    "id": 1,
    "name": "model name",
    "teams": [
      {
        "name": "team one name"
      },
      {
        "name": "team two name"
      }
    ],
    "contacts": [
      {
        "name": "James Smith",
        "email": "[email protected]",
        "telephone": "18917391847"
      }
    ]
  }
]

我真的可以做吗 this.model.set(myNewContactObject)? or do I need to do something like this.model.contacts.set(myNewContactObject)?

或者,也许这种方法是错误的,我应该每次collection out of the contacts一下ContactsCollection并设置ContactModel一次吗?

斯托利

骨干网Model.set具有以下语法:

this.model.set('attribute-name', 'attribute-value')

因此,要将属性“ contacts”设置为复杂的数组对象,您需要执行以下操作:

var contacts = this.model.get('contacts');
contacts.push(myNewContactObject);

请注意,在这种情况下,由于数组是通过JavaScript中的引用传递的,因此无需进行contacts.set调用;.get()调用返回一个引用,您可以通过该引用直接更改contacts数组。但是,如果您构建了一个新数组:

var newContacts = [myNewContactObject];

您需要这样设置:

this.model.set('contacts', newContacts);

请注意,您希望修改的属性是作为参数传递的,而不是作为模型的属性引用的,因此this.model.contacts.set您提到语法在任何情况下均不起作用。

请记住,Backbone允许您将复杂的对象设置为属性的值,但并不能帮助您将该属性挖掘到任意深度。为此,您需要一个Backbone插件(如)backbone-deep-model,该插件可与npm install一起安装bower install这将允许您执行以下操作:

this.model.get('contacts.0.name')

没有这样的事情,您只能执行以下操作:

this.model.get('contacts') 然后解析出您想要的联系方式/财产。

您也可以按照您提到的方式进行操作,并创建联系人集合,但这在很大程度上取决于您计划如何在后端中对数据建模。如果您在后端有一个关系API设置,例如api/v1/persons/<person-id>/contacts,则您可能要使用该URL创建联系人集合,并为每个人创建一个相关集合。在这种情况下,是的,数组中的每个联系人对象实际上都是它自己的模型,而您的“数组”实际上就是Backbone.Collection。这是否正确,取决于您的建模。

如果您有兴趣进行此操作,backbone-relational尽管使用Backbone进行关系数据的概念是一些争论的话题,但您可能需要研究一下

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

骨干网如何获取数组中的特定对象

来自分类Dev

如何使用.where()在骨干网中查询模型的嵌套对象

来自分类Dev

在骨干网中创建新模型?

来自分类Dev

如何在骨干网中重新渲染部分模型?

来自分类Dev

如何在骨干网中重新渲染部分模型?

来自分类Dev

在对象的嵌套数组中查找父对象。如何?

来自分类Dev

在对象的嵌套数组中过滤

来自分类Dev

骨干网听嵌套模型/集合吗?

来自分类Dev

如何设置状态嵌套在对象数组中的数组

来自分类Dev

如何渲染属性嵌套在对象嵌套数组中的元素数组?

来自分类Dev

如何渲染属性嵌套在对象嵌套数组中的元素数组?

来自分类Dev

骨干网:在单个请求中批量保存模型?

来自分类Dev

将复杂的模型保存在骨干网中

来自分类Dev

在骨干网中异步将模型绑定到视图

来自分类Dev

如何在骨干网中调用父模型的默认方法

来自分类Dev

我如何在骨干网js的路由器中检查模型的属性?

来自分类Dev

如何在骨干网中调用父模型的默认方法

来自分类Dev

模型数据未在使用骨干网的视图中显示

来自分类Dev

使用JSON文件中的数据制作模型的骨干网集合

来自分类Dev

如何从对象数组中的嵌套数组访问特定值?

来自分类Dev

使用骨干网设置下拉列表的默认选择

来自分类Dev

骨干网集合-无法使用set方法设置“等级”

来自分类Dev

骨干网:如何通过用户名而不是ID从集合中获取特定行?

来自分类Dev

AngularJS在嵌套数组中插入数据并使用特定的嵌套数组对象进行排序

来自分类Dev

如何从特定记录访问对象中的嵌套数组?

来自分类Dev

如何在对象嵌套数组中进行$ lookup

来自分类Dev

在对象的嵌套数组中搜索js

来自分类Dev

骨干网:同步模型和LocalStorage

来自分类Dev

如何使用MongoDB C#将新对象插入(推入)嵌套数组中?

Related 相关文章

  1. 1

    骨干网如何获取数组中的特定对象

  2. 2

    如何使用.where()在骨干网中查询模型的嵌套对象

  3. 3

    在骨干网中创建新模型?

  4. 4

    如何在骨干网中重新渲染部分模型?

  5. 5

    如何在骨干网中重新渲染部分模型?

  6. 6

    在对象的嵌套数组中查找父对象。如何?

  7. 7

    在对象的嵌套数组中过滤

  8. 8

    骨干网听嵌套模型/集合吗?

  9. 9

    如何设置状态嵌套在对象数组中的数组

  10. 10

    如何渲染属性嵌套在对象嵌套数组中的元素数组?

  11. 11

    如何渲染属性嵌套在对象嵌套数组中的元素数组?

  12. 12

    骨干网:在单个请求中批量保存模型?

  13. 13

    将复杂的模型保存在骨干网中

  14. 14

    在骨干网中异步将模型绑定到视图

  15. 15

    如何在骨干网中调用父模型的默认方法

  16. 16

    我如何在骨干网js的路由器中检查模型的属性?

  17. 17

    如何在骨干网中调用父模型的默认方法

  18. 18

    模型数据未在使用骨干网的视图中显示

  19. 19

    使用JSON文件中的数据制作模型的骨干网集合

  20. 20

    如何从对象数组中的嵌套数组访问特定值?

  21. 21

    使用骨干网设置下拉列表的默认选择

  22. 22

    骨干网集合-无法使用set方法设置“等级”

  23. 23

    骨干网:如何通过用户名而不是ID从集合中获取特定行?

  24. 24

    AngularJS在嵌套数组中插入数据并使用特定的嵌套数组对象进行排序

  25. 25

    如何从特定记录访问对象中的嵌套数组?

  26. 26

    如何在对象嵌套数组中进行$ lookup

  27. 27

    在对象的嵌套数组中搜索js

  28. 28

    骨干网:同步模型和LocalStorage

  29. 29

    如何使用MongoDB C#将新对象插入(推入)嵌套数组中?

热门标签

归档