我已从服务器获取该集合并在视图中显示。现在我想在将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
答案 0 :(得分:0)
您的主要问题似乎在renderList
函数中。现在我不知道你的模型是什么样的,所以在你的描述中添加它可能会有所帮助。但主要问题是如何将模型附加到模板。您不能只将模型类抛入模板,您必须获取模型的属性。所以也许你正在寻找这个:
renderList: function () {
var compiledTemplate = _.template(orderDetails, { Details: this.order.attributes, Items: this.order.get('Items') });
this.$el.html(compiledTemplate);
}