我正在尝试制作一些非标准的主干应用程序,在集线器下使用 requery.js 结构我从我的集合中的 XML 加载数据,并尝试在视图页面上显示它。
define([
'jquery',
'underscore',
'backbone',
'models/products'
], function($, _, Backbone, ProductsModel){
var ProductsCollection = Backbone.Collection.extend({
model: ProductsModel,
url: "Labels.xml",
parse: function(data) {
var parsed=[];
$(data).find('item').each(function (index) {
var productNode = $(this).attr('nodeID');
var productNodeValue = $(this).text();
parsed.push({ title: productNode, value: productNodeValue });
});
return parsed;
},
fetch: function(options) {
options || (options = {});
options.dataType="xml";
Backbone.Collection.prototype.fetch.call(this, options);
},
initialize: function(){
}
});
return ProductsCollection;
});
这是一个集合,到目前为止它充满了来自 XML 的数据,但我想在页面上显示它.. 视图看起来像这样
define([
'jquery',
'underscore',
'backbone',
// Pull in the Collection module from above
'collections/products',
'text!templates/products/main.html'
], function($, _, Backbone, ProductsCollection, productsListTemplate){
var productsListView = Backbone.View.extend({
el: $("#page"),
render: function(){
var data = {
productDetails: this.collection,
_: _
};
var compiledTemplate = _.template( productsListTemplate, data );
this.$el.html( compiledTemplate );
},
initialize: function(){
this.collection = new ProductsCollection();
this.collection = this.collection.fetch();
}
});
return productsListView;
});
在页面上我尝试展示它
<ul>
<% _.each(productDetails, function(project){ %>
<li><%= product.get("title") %> - <%= product.get("value") %></li>
<% }); %>
</ul>
但我总是收到错误 _each 格式不正确。主要思想是从 XML 加载标签和按钮事件并将其显示在页面上。