Jquery 如何从服务器获取模型并在视图中显示?

Jquery 如何从服务器获取模型并在视图中显示?,jquery,backbone.js,Jquery,Backbone.js,我已经从服务器获取了集合并显示在视图中。现在,我想在将Id传递给服务器时获取单个项目的详细信息。首先,我将收集和显示在网格中。现在,若有人点击gridview行,那个么我会在url中传递id。我想通过传递这个Id来获取模型。我要做什么来获取模型。我收到错误-未捕获的TypeError:无法读取未定义的属性“get” ********模型启动******************** *********模型端********************** ***********视图开始********

我已经从服务器获取了集合并显示在视图中。现在,我想在将Id传递给服务器时获取单个项目的详细信息。首先,我将收集和显示在网格中。现在,若有人点击gridview行,那个么我会在url中传递id。我想通过传递这个Id来获取模型。我要做什么来获取模型。我收到错误-未捕获的TypeError:无法读取未定义的属性“get”

********模型启动********************

*********模型端**********************

***********视图开始*******************

***********视图端********************

有人能帮我解决这个问题吗

谢谢和问候


shwetamber

看起来您的主要问题在于renderList函数。现在我不知道你的模型是什么样子的,所以在你的描述中加上它可能会有帮助。但主要问题是如何将模型附加到模板。你不能仅仅把模型类扔进模板,你必须抓住模型的属性。所以也许你在找这个:

renderList: function () {

    var compiledTemplate = _.template(orderDetails, { Details: this.order.attributes, Items: this.order.get('Items') });
    this.$el.html(compiledTemplate);

}

我认为你需要稍微整理一下你的代码。我读这篇文章有点困难。类似这样的语句。order=新订单令人困惑。您正在创建新的订单模型或订单集合。那里有一个不知从哪里冒出来的window.ID。在您的渲染函数中,您正在从服务器获取内容,而在我看来,您应该只更新其中的视图。既然主干本身对你们应该如何使用它的解释是相当开放的,我真的建议你们使用木偶。它将为您提供一个像样的结构,并使处理嵌套视图更容易。
define([
  'jquery',
  'underscore',
  'backbone',
  'text!templates/orderDetails.html',
  'collections/OrderCollection',
  'collections/ItemCollection',
  'models/Orders',
], function ($, _, Backbone, orderDetails, OrderCollection, ItemCollection,Orders) {

    var ProfileView = Backbone.View.extend({
        el: $("#content"),
        render: function (Id) {
            this.Id = Id;
            var self = this;
            this.order = new Orders();
            this.order.fetch({
                url: 'GetOrderDetails',
                data: JSON.stringify({ orderId: window.Id }),
                success: function () {
                    self.renderList();
                },
                error: function (a, b, c) {
                    alert(a);
                }
            });

        },
        renderList: function () {

            var compiledTemplate = _.template(orderDetails, { Details: this.order, Items: this.order.Items });
            this.$el.html(compiledTemplate);

        }
    });

    return ProfileView;
});
renderList: function () {

    var compiledTemplate = _.template(orderDetails, { Details: this.order.attributes, Items: this.order.get('Items') });
    this.$el.html(compiledTemplate);

}