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

时间:2014-06-05 04:44:48

标签: jquery backbone.js

我已从服务器获取该集合并在视图中显示。现在我想在将Id传递给服务器时获取单个项目的详细信息。首先,我收集并显示在网格中。现在如果有人点击gridview行,那么我在url中传递id。我希望通过传递此ID来获取Model。我做什么来获得模型。我收到错误 - 未捕获的TypeError:无法读取未定义的属性'get'

******** 模型开始 ********************

define([
  'jquery',
  'underscore',
  'backbone'
], function ($, _, Backbone) {
    var Order = Backbone.Model.extend({
        idAttribute: "ID",
    });
    return Order;
});

********* 模特结束 **********************

*********** 查看开始 ******************* < / p>

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

*********** 查看结束 ********************

有人可以帮我解决这个问题。

谢谢&amp;此致

shwetamber

1 个答案:

答案 0 :(得分:0)

您的主要问题似乎在renderList函数中。现在我不知道你的模型是什么样的,所以在你的描述中添加它可能会有所帮助。但主要问题是如何将模型附加到模板。您不能只将模型类抛入模板,您必须获取模型的属性。所以也许你正在寻找这个:

renderList: function () {

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

}