0

私のバックボーン関数には no.of フィルター メソッドがあるため、代わりに 'this.$el.append()'、'this.$el.html()' を使用することにしましたが、html() の置き換えは機能しません。 . ホール ビューを新しいコレクションに置き換えても問題ないと思いました。

同様に、this.$el.empty() を作成しようとしましたが、機能しません...どうすれば親から既存の要素をクリアし、新しい世代の要素を追加できますか..?

私のコード:

    renderBoard:function(item){
          var singleView = new taskListPhraseI.oneView({model:item}),
// after this, i need to make parent of the element should be empty...
          board = this.$el.append(singleView.render()),

          newBoard = board.find('.indBoard:last');
          this.positionBoards(newBoard);
        },

どうすればこれを達成できますか?

4

1 に答える 1

1

したがって、次のようにビューを設定している場合

views = window.views || {};

views.ExampleView = Backbone.View.extend({

    initiliaze: function(){
        // do some stuff
    },

    render: function(){

        $(this.el).html("<YOUR HTML GOES HERE></YOUR HTML GOES HERE>");

        // return yourself as simple to chain access to your "el"
        return this;
    }

});

次に、ビューをレンダリングし、他のすべてのビューを事前に削除したい場合は、次のようになります

renderView: function(item)
{
    var test=new views.ExampleView({
       model:item
    });

    // this should replace the elements contents with the views html above
    $(this.el).html(test.render().el);
}

それでも問題が解決しない場合は、'this' がコンテキストを失い、クラスを参照しなくなった可能性があります。レンダリング時にその値が何であるかをデバッグします。

それが役立つことを願っています

于 2013-01-25T13:37:38.577 に答える