Javascript 从主干视图调用模板中的变量

Javascript 从主干视图调用模板中的变量,javascript,backbone.js,requirejs,Javascript,Backbone.js,Requirejs,我正在使用文本!require.js的插件,用于加载我的主干项目的javascript模板 这是: <table id="showcart"> <tr><td class="cartitemhead">Item to buy</td><td class="cartitemhead" style="text-align: center;">Quantity</td></tr> <% _.

我正在使用
文本!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>
型号:

define(["underscore" , "backbone"],function(_ , Backbone){
   var Cart = Backbone.Model.extend({

   });
});
我从控制台收到一个错误:
未捕获引用错误:未定义项


非常感谢您提供的任何帮助。

您需要以某种方式指出希望传递给主干模板的值。因为您已经定义了一个变量,所以下划线模板正在寻找一个要替换的值

因此,请尝试将模型值作为参数传递给附加视图

var CartListView = Backbone.View.extend({
    render: function(){
        var item = deserializeJSONToObj(window.localStorage.getItem("Cart"));
        var cartList = _.template(showCartTemplate, {})
        $("#cartlist").append({item : cartList});
    }
});

这样,每次undercore查找变量
项时,它都将替换为作为参数传递给视图的值。

您需要在传递到.template的对象中传递项键

var CartListView = Backbone.View.extend({
    render: function(){
        var item = deserializeJSONToObj(window.localStorage.getItem("Cart"));
        var cartList = _.template(showCartTemplate, {item : item})
        $("#cartlist").append({item : cartList});
    }
});

因为您不能直接在模板中访问item变量。

Oop!如上所述,传递模型值?实际上现在我的模型是空的。我应该在模型中保留什么?(对不起,我对主干非常陌生)。您是否将模型或集合传递到主干视图?我的意思是,为了使用模型的数据,您必须指向主干模型或集合。我添加了模型,我将模型指向view ready,但我确实知道,我应该在模型中写入哪些数据:|如果您不知道,那么我应该如何知道?:)实际上,模型是一组包含键值对的对象。主干网官方网站将为您提供所有必要的解释:。也许如果你再解释一点,你想要实现什么会更有帮助。对象
item
存储在localStorage中,其键和值如下
var item={DepartmentID:333,CategoryID:117,ID:711}
那么我应该在我的模型中存储这个对象?
var CartListView = Backbone.View.extend({
    render: function(){
        var item = deserializeJSONToObj(window.localStorage.getItem("Cart"));
        var cartList = _.template(showCartTemplate, {item : item})
        $("#cartlist").append({item : cartList});
    }
});