我正在使用text! plug-in
的require.js来加载我骨干项目的javascript模板。
这是:
<table id="showcart">
<tr><td class="cartitemhead">Item to buy</td><td class="cartitemhead" style="text-align: center;">Quantity</td></tr>
<% _.each(item, function(item) { %>
<tr><td><table class="verticallist"><tr><td rowspan="4" style="width: 120px;"><img src="<%=item.PictureName%>" alt="Product" width="95px"/></td><td style="font-weight: bold;"><%=trimString(item.Name,50)%></td></tr><tr><td><i>Available in Stock(s)!</i></td></tr><tr><td><i>Rating: 650Va-390w Input: Single</i></td></tr></table></td><td class="centertxt"><%=item.QuantityInCart%></td></tr>
<% }); %>
</table>
在我的视图中声明了 item
变量。
var CartListView = Backbone.View.extend({
render: function(){
var item = deserializeJSONToObj(window.localStorage.getItem("Cart"));
var cartList = _.template(showCartTemplate, {})
$("#cartlist").html(cartList);
}
});
型号:
define(["underscore" , "backbone"],function(_ , Backbone){
var Cart = Backbone.Model.extend({
});
});
我从控制台收到一个错误:Uncaught ReferenceError: item is not defined
。
非常感谢任何帮助,谢谢。
答案 0 :(得分:1)
您需要以某种方式指出要为骨干模板传递的值。因为您已定义变量,所以Underscore模板正在寻找要替换的值。
为此,请尝试将模型值作为参数传递给附加视图。
var CartListView = Backbone.View.extend({
render: function(){
var item = deserializeJSONToObj(window.localStorage.getItem("Cart"));
var cartList = _.template(showCartTemplate, {})
$("#cartlist").append({item : cartList});
}
});
这样,每当undercore找到变量item
时,它将替换为作为参数传递给视图的值。
答案 1 :(得分:0)
您需要在_.template
中传递的对象中传递item项var CartListView = Backbone.View.extend({
render: function(){
var item = deserializeJSONToObj(window.localStorage.getItem("Cart"));
var cartList = _.template(showCartTemplate, {item : item})
$("#cartlist").append({item : cartList});
}
});
因为您无法直接在模板中访问项目变量。