2015-04-08 194 views
0

我在現有的Backbone項目中工作。我正在儀表板頁面上工作。在該頁面中,我們對每一部分獨立意見,我對mypage部分工作視圖沒有正確渲染

儀表盤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標籤ID爲rowList但沒有得到該行補充說。當我使用inspect元素進行調試時,會調用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中傳遞想要添加的評論,並查看是否有效。