从骨干中的多个模型中提取问题

时间:2014-01-30 02:58:15

标签: javascript node.js backbone.js

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

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

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
      });
    });

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

1 个答案:

答案 0 :(得分:0)

有很多方法可以实现这一目标,但最好的方法(在我看来)是:

将视图拆分为两个视图(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();
}