【问题标题】:Advice on structuring Backbone array data关于构建主干阵列数据的建议
【发布时间】:2016-12-02 08:09:04
【问题描述】:

我正在从 REST API 检索数据以用于我的 Backbone.js 应用程序的过程中。在这一点上,我不需要对数据做任何操作,除了返回的数据是一个数组。但是,未来可能会带来这样的请求,所以我已经为这种类型的数据创建了一个 Backbone 模型和集合。

我读到您可以将 Array 数据映射到 Backbone 集合中的一个对象,但我想知道,因为我已经有一个模型,是否已经将每个元素映射到我的 Backbone 模型中会更好。

由于我不是 Backbone.js 框架方面的专家,因此非常感谢任何包含有关此部分的更多文档的链接。

更新:我实际上是在寻找 BackboneJS 框架提供的解析方法。通过将数组转换为解析函数中的对象,我能够解决这个问题。 您可以使用 parse 方法来解析您想做的任何类型的转换,例如复制属性,修改属性等。 更多信息:http://backbonejs.org/#Collection-parse

【问题讨论】:

  • 不清楚你的意思是将你的Array数据映射到你的Backbone集合中的一个对象,你能提供你正在使用的数据的格式,或者等效
  • 此时我的数据作为数组从我的 API 返回:['item1', 'item2', 'item3'] 我发现 here 我需要将我的数组映射到一个对象

标签: javascript rest backbone.js backbone.js-collections


【解决方案1】:

正如你提到的question,这可以使用parse来实现,无论是在集合上还是在模型上。

var UserModel = Backbone.Model.extend({

  // String name is mapped to an object with the name property
  parse: function(name) {
    return {
      name: name
    };
  }
});

var UserCollection = Backbone.Collection.extend({
  model: UserModel
});

var collection = new UserCollection(['Ann', 'Joe', 'Jim', 'Bob'], {parse: true});
console.log(collection.at(0).get('name'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>

在上面的例子中,集合是用数据实例化的,在这种情况下,parse默认不运行,所以需要在选项中设置,但是如果集合正常从@987654326获取数据@,默认情况下总是会解析。

【讨论】:

  • 谢谢,这是我问题的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-01
  • 2017-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多