Backbone.js将从服务器检索到的模型添加到集合中

用户1884367

我想知道是否可以通过以下方式将模型添加到集合中。我试过了,它不起作用。如果我直接添加JSON [],则可以。我知道这有点奇怪,但是我试图更好地了解BB的工作原理。谢谢。

var UserModel = Backbone.Model.extend({
    urlRoot: '/users',
});

var UserModels = Backbone.Collection.extend({
    url: '/users',
    model: UserModel
});

var user = new UserModel({id:1});
user.fetch({  // get the model
    success: function (user) {
        var users = new UserModels();
        users.add(user); // add the model to a collection
    }
});

服务器正在回显以下模型:

[{"name":"john","email":"[email protected]"}]
丹尼尔·JG

由于服务器的响应是一个包含单个元素的数组,因此您需要添加一个解析函数,该函数返回该数组的第一个元素:

var UserModel = Backbone.Model.extend({
    urlRoot: '/users',
    parse: function(response){
        if(response && response.length) return response[0];
    }
});

这应该允许模型正确地解析服务器响应中的属性:[{"name":"john","email":"[email protected]"}]

顺便说一句,您将在成功功能中创建用户集合,因此该功能之外将无法使用它。它可能只是您发布的示例代码,但是您可以在外部创建users集合,只需在成功函数中添加模型:

var users = new UserModels();
var user = new UserModel({id:1});
user.fetch({  // get the model
    success: function (user) {
        users.add(user); // add the model to a collection
    }
});

创建了一个小提琴,因此您可以尝试一下。(我使用了提琴回声服务,因此这就是为什么我更改了URL并使用POST的原因)。如果运行它并检查控制台,则会看到正在记录用户集合,并且可以检查其models属性。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Backbone.js如何在嵌套集合中检索模型?

来自分类Dev

当添加到集合中时,修改模型的Backbone方法是什么?

来自分类Dev

推迟将Backbone.js集合与服务器同步

来自分类Dev

Backbone.js:仅从JSON集合中添加新模型

来自分类Dev

与Backbone.js与服务器通信

来自分类Dev

Backbone.js更新集合中的集合模型

来自分类Dev

从 Backbone 集合中检索特定元素

来自分类Dev

LocalStorage Backbone.js

来自分类常见问题

Backbone js .listenTo与.on

来自分类Dev

Backbone.js设置

来自分类Dev

Backbone.js视图

来自分类Dev

Backbone.js模型发布

来自分类Dev

集合的Backbone.js包装器模板

来自分类Dev

在Backbone.js中形成多个集合和模型的问题

来自分类Dev

我可以使用Backbone.js模型查询服务器吗?

来自分类Dev

不会在IE浏览器的集合中删除Backbone js模型

来自分类Dev

在Backbone视图中收听嵌套的Backbone关系模型事件

来自分类Dev

根据Backbone.js中的条件将视图添加到其他el

来自分类Dev

让Backbone.js提琴工作

来自分类Dev

Backbone.js PushState True

来自分类Dev

Backbone.js渲染延迟?

来自分类Dev

在Backbone.js上查询

来自分类Dev

Backbone.js JSON结构

来自分类Dev

让Backbone.js提琴工作

来自分类Dev

Backbone.js PushState True

来自分类Dev

用BACKBONE JS路由Cakephp

来自分类Dev

Backbone JS 滚动事件处理

来自分类Dev

在Backbone View的点击事件中创建新的Backbone Views

来自分类Dev

Backbone中的验证未验证?