2015-04-08 5 views
0

Я работаю в существующем проекте Backbone. Я работаю на странице Dashboard. На этой странице мы имеем отдельные изображения для каждого раздела, я работаю на участке mypageВид не получается визуализироваться должным образом

Dashboard JS имеет следующий код

 require(['project/home/mypage'], function(MyPage) {  
      myPage = new MyPage(); 
      $(self.el).find("#my-page").html(mypage.render(self)); 

     }); 

    require([ 'project/home/differentpage' ], function(DifferentPage) { 
      differentPage = new DifferentPage(); 
      $(self.el).find("#different-page").html(differentPage.render()); 

     }); 

mypage.js файл выглядеть следующим образом. Он расширяет представление из другого файла javascript, и после рендеринга он вызывает переопределенный метод renderComments для обновления представления.

render : function(parent) { 
    require(['project/homepage'], function(HomePage){ 
    var mypage = HomePage.extend({ 
    render:function() { 
     $(this.el).html('<div id='+this.rowContainer()+'> </div>'); 
     return this; 
    }, 
    rowContainer: function(){ 
     return 'rowList'; 
    }, 
    renderComments: function(responseJson, loadMoreRows){ 
     // My Logic for this page goes here. I am adding few rows to the view 
    } 
    }); 
    var mytempPage =new HomePage(); 
    var trayEl = mytemppage.render().el; 
    trayEl.renderComments(); 
    $(this.el).html(trayEl); 

    return this; 
} 

мнение является получение div тег с идентификатором rowList, но он не получает добавляется строка. Когда я отлаживаю использование элемента проверки, вызывается метод renderComments.

Я ничего не вижу здесь. Цените вашу помощь

ответ

0

var mytempPage =new HomePage();

создает новый элемент

var trayEl = mytempPage.render().el;

trayEl присвоенную .el собственность ... в результате визуализации функции (она возвращает 'это' ... так что это только сам .el)

trayEl.renderComments();

renderComments в настоящее время возвращает undefined/ничего не делает ... поэтому похоже, что вы просто передаете сам .el в html, который не должен ничего отображать.

$(this.el).html(trayEl);

Помните, чтобы изменить HTML здесь, trayEl должен быть HTML строкой. Попробуйте пройти в некотором сыром html для комментариев, которые хотите добавить, и посмотрите, работает ли это.

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