视图无法正确呈现

时间:2015-04-08 09:04:32

标签: jquery backbone.js requirejs backbone-views

我在现有的Backbone项目中工作。我正在使用Dashboard页面。在此页面中,我们为每个部分提供了单独的视图,我正在处理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的{​​{1}}标记,但未添加该行。当我使用inspect元素调试时,将调用renderComments方法。

我在这里遗漏了什么。感谢您的帮助

1 个答案:

答案 0 :(得分:0)

var mytempPage =new HomePage();

创建一个新元素

var trayEl = mytempPage.render().el;

trayEl被分配给渲染结果的.el属性.... 功能(它返回&#39;这&#39; ...所以它只是.el本身)

trayEl.renderComments();

renderComments当前返回undefined /什么都没做...所以看起来你只是将.el本身传递给html,而html不应该渲染任何其他东西。

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

请记住,要在此处更改html,trayEl需要是一个html字符串。 尝试在一些原始html中传递想要添加的注释,并查看是否有效。