【问题标题】:Trouble fetching from multiple models in backbone从主干中的多个模型中获取问题
【发布时间】:2014-01-30 20:10:52
【问题描述】:

我正在使用主干在 node.js 中开发一个应用程序,但我无法理解如何从两个相互关联的模型中提取数据。在这种情况下,我有一个模型 Users 和一个模型 Comments,在用户视图上我想显示一些用户数据以及用户的 cmets 列表。我试过做一个多重提取语句(不确定这是否是正确的方向),但它只返回对象数组中的数据,而不是骨干需要的属性对象下的数据。

这是我正在尝试使用的骨干路由器的功能:

showUser: function(id) {
  var user = new User({id: id});
  var comments = new Comments({userId: id});
  $.when(user.fetch(), comments.fetch())
    .done(function(userdata, commentdata) {
      window.showUserView = new showUserView({
        model: userdata,
        data: commentdata
      });
    });

从主干中的多个模型/集合中提取数据的首选方法是什么?

【问题讨论】:

  • 您能详细说明这两个模型之间的关系吗?如果用户有很多 cmets?
  • 正常,你这里得到的是ajax响应

标签: javascript node.js backbone.js


【解决方案1】:

有很多方法可以做到这一点,但最好的方法(在我看来)是:

将您的视图拆分为两个视图(UserView 和 UserCommentsView),在每个视图中添加此方法:

initialize : function() {
   this.model.bind('change', 'render');
}

之后,将您的路由器更改为:

showUser: function(id) {
    var user = new User({id: id});
    var comments = new Comments({userId: id});

    new UserView({ model: user });
    new UserCommentsView({ model: comments });

    user.fetch();
    comments.fetch();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 2016-02-14
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多