我的Backbone下划线模板ReferenceError?

时间:2014-11-17 13:19:32

标签: javascript backbone.js underscore.js underscore.js-templating

::更新2 ::

这是我目前的模板,

<script type="text/template" id="TimesheetData">  
<form action="#" method="post" id="TimesheetDataList">

<% if(Timesheetrow.jobtitle) { %>

 <div class="TimesheetRowData">
    <input type="hidden" name="data[Timesheetrow][0][id]" value="<%= Timesheetrow.id  %>">
    <input type="type" name="data[Timesheetrow][0][jobtitle]" value="<%= Timesheetrow.jobtitle  %>">
 </div>

<%  }; %>

</form>
<script>

每个职位都是以自己的形式,而不是一种形式(这就是我需要的),但有很多表格标签,每一种都有我的职称之一

谢谢,


:: UPDATE ::

这就是我的模型

var TimeSheetRowModel = Backbone.Model.extend({
     defaults: {
        Timesheetrow: "",
        Client: "",
        Customer: ""
     }
});

好吧,我的大部分工作都有效,但由于某种原因,我无法清除控制台日志中的RefernceError。但是我(想)我知道它在那里,但不知道如何解决它。

所以我的Backbone代码:

var TimeSheetRowModel = Backbone.Model.extend({});

var TimeSheetRowCol = Backbone.Collection.extend({
    model: TimeSheetRowModel,
    url: '/dashboard/jsondata/' + GetTimesheetID
});

var NewTimeSheetCollection = new TimeSheetRowCol(); //New Instance Of Collecttion

var TimeSheetView = Backbone.View.extend({
    el:'#testarea', //HTML loading area for the data

    template: _.template( $('#Timesheet-Data').html() ), //Template to load the JSON data into

    initialize: function(){
      this.listenTo(NewTimeSheetCollection, "add", this.AddMyModel);
      NewTimeSheetCollection.fetch();
    },

    AddMyModel: function(TimeSheetRowModel) {  //apply model data to view template and append to view element   
       //console.log( this.$el.append(this.template(TimeSheetRowModel.toJSON()[0])) );
       $(this.el).html(this.template(TimeSheetRowModel.toJSON()));
    }

});

var NewTimeSheetVew = new TimeSheetView(); //New Instance Of The View    
NewTimeSheetVew.render(); //Render Out The View Instance

我的下划线代码:

 <script type="text/template" id="Timesheet-Data">    

       <%= console.log(Client) %>  

 </script>

现在这会控制台记录我的所有客户数据,没有任何问题,我也可以将这些数据/打印到我的测试区#39;格。

然而,在我的控制台日志中,我得到了,

 Uncaught ReferenceError: Client is not defined

现在从我所看到的,这似乎是因为我试图作为对象(?)访问并且toJSON返回一个字符串 - 如果我有错误,请更正我的理解?

但我不明白的是,如果我输入错误的输出类型,我怎样才能访问数据?我应该如何处理它,如何让我的toJSON返回一个对象?

谢谢,

1 个答案:

答案 0 :(得分:1)

你的模特中有“客户”属性吗?

例如:

var TimeSheetRowModel = Backbone.Model.extend({

    Client: ""// some value
});

然后,只有您可以使用下划线在视图中访问该属性。