2014-09-25 5 views
0

Учитывая приложение YUI с двумя представлениями, HomePageView & tradedeskPageView, я хочу отобразить данные в tradedeskview. TradedeskView определяются с помощью шаблона, как,Что представляет собой идеальный способ отображения данных в представлении YUI

<script id="t-tradedesk" type="text/x-handlebars-template"> 
    <div id="my-datatable"></div> 
    </script> 

И вид определяются, как показано ниже,

YUI().add('tradedeskPageView', function(Y) { 

Y.TradedeskPageView = Y.Base.create('tradedeskPageView', Y.View, [], { 
    // Compiles the tradedeskTemplate into a reusable Handlebars template. 
    template: Y.Handlebars.compile(Y.one('#t-tradedesk').getHTML()), 

    initializer: function() { 
     var cols = [ 
      { key: 'id', label: 'ID' }, 
      { key: 'name', label: 'Name' } 
     ]; 

     var data = [ 
      { id: 12345, name: 'Srikanth'}, 
      { id: 12346, name: 'Aditya'} 
     ]; 
     this.table = new Y.DataTable({ 
      columns: cols, 
      data: data 
     }); 

     //this.table.render('#my-datatable'); This is not possible as view is not rendered and node with given id wont exist 
    }, 

    render: function() { 
     var content = this.template();   
     this.get('container').setHTML(content); 
     return this; 
    } 
}); 
}, '1.0.0', { 
    requires: [] 
}); 

Как я должен отображать таблицу в требуемом сНе то есть, # моего-DataTable в этом случае.

ответ

1

уступи идти:

render: function() { 
    var content = this.template(), 
     container = this.get('container'); 

    container.setHTML(content); 
    this.table.render(container.one('#my-datatable')); //node exists at this point 
    return this; 
} 

Вы можете инициализировать DataTable в инициализаторе вы осматриваете, но только делают это, когда сам View визуализируется

+0

Да, это сработало. Thnq !!! – Srikanth

 Смежные вопросы

  • Нет связанных вопросов^_^