2013-03-15 86 views
1

使用JSON数据填充它,我有模板,在HTML作为创建模板骨干鉴于

<script type="text/template" id="table-template"> 
    <div id="table-body"></div>       
</script> 

我的骨干鉴于这个样子的

var app = app || {}; 
$(function ($) { 
    'use strict'; 
    info = [ 
     { 
      "id": 1, 
      "Age": 70, 
      "salary": 700000, 
      "name": "Mike", 
     }, 
     { 
      "id": 2, 
      "Age": 18, 
      "salary": 30000, 
      "name": "Mike", 
     }, 
    ]; 
    app.infoView = Backbone.View.extend({ 
     initialize: function() { 
      console.log('initialize'); 
     }, 
     drawinfoTable: function() { 
      console.log('create datatable'); 
      $('#test').dataTable({ 
       "aaData": groupdata, 
       "aoColumns": [ 
        { "mDataProp": "id" }, 
        { "mDataProp": "age" }, 
        { "mDataProp": "sal" }, 
        { "mDataProp": "active" }, 
        { "mDataProp": "name" } 
       ] 
      }); 
     } 
     render: function() { 
      console.log('render'); 
      var template = _.template($("#-template").html(), {}); 
      this.$el.html(template); 
     } 
    }); 
}); 

其实与上面的json数据,我想创建列名称id,萨尔,活动&萨尔数据表。我正在使用jquery.dataTables.min.js来创建数据表。然后,我想将该数据表插入“table-body”div中,该表存在于“table-template”中。对你的帮助表示感谢。

+0

不理解你的问题。你能否用正确的语法来重述你的问题?你是否试图使用'info'变量中的信息渲染模板中的表格? – HungryCoder 2013-03-15 08:17:37

+0

@HungryCoder,我希望你现在明白我的问题。 – Lasang 2013-03-15 08:24:29

+0

是的,我希望如此。写一个答案 – HungryCoder 2013-03-15 08:27:14

回答

2

您的模板应该是这个样子:

<script type="text/template" id="table-template"> 
    <div id="table-body"> 
     <table> 
      <tr> 
       <th>id</th> 
       <th>age</th> 
       <th>salary</th> 
       <th>name</th> 
      </tr> 
      <% _.each(info, function(data, index) { %> 
      <tr> 
        <td><%= data.id %></td> 
        <td><%= data.Age %></td> 
        <td><%= data.salary %></td> 
        <td><%= data.name %></td> 
      </tr> 
      <% }); %> 
     </table> 
    </div>       
</script> 

而且渲染方法:

render: function() { 
    console.log('render'); 
    var template = _.template($("#-template").html(), { info : info }); 
    this.$el.html(template); 
} 
+0

之间 - 索引){%> - ,我得到错误,多重信息错误 – Lasang 2013-03-15 11:39:47

+0

固定,有一个);失踪,抱歉。 – 2013-03-15 11:41:48

1

@Sylvanus已经回答了如何渲染视图。您所需要的只是激活数据表。

尝试他的渲染功能

render: function() { 
    console.log('render'); 
    var template = _.template($("#-template").html(), { info : info }); 
    this.$el.html(template); 
    //initialize datatable 
    this.$el.find('#table-body').find('table').dataTable(); 
} 

的以下修改你只需要你的模板渲染完成后,初始化数据表。