Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从主干中的多个模型获取时出现问题_Javascript_Node.js_Backbone.js - Fatal编程技术网

Javascript 从主干中的多个模型获取时出现问题

Javascript 从主干中的多个模型获取时出现问题,javascript,node.js,backbone.js,Javascript,Node.js,Backbone.js,我正在使用主干网开发node.js中的一个应用程序,我很难理解如何从两个相互关联的模型中提取数据。在本例中,我有一个模型用户和一个模型注释,在用户视图中,我希望显示一些用户数据以及用户注释列表。我尝试过执行一个multiple fetch语句,不确定这是否是正确的方向,但它只返回对象数组中的数据,而不返回主干所需的对象属性下的数据 下面是我尝试使用的主干路由器的功能: showUser: function(id) { var user = new User({id: id}); var

我正在使用主干网开发node.js中的一个应用程序,我很难理解如何从两个相互关联的模型中提取数据。在本例中,我有一个模型用户和一个模型注释,在用户视图中,我希望显示一些用户数据以及用户注释列表。我尝试过执行一个multiple fetch语句,不确定这是否是正确的方向,但它只返回对象数组中的数据,而不返回主干所需的对象属性下的数据

下面是我尝试使用的主干路由器的功能:

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

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

实现这一点的方法有很多,但在我看来,最好的方法是:

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

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