1

ここでlist.htmlの例を変更しましたhttps://github.com/tbranyen/backbone.layoutmanager/blob/master/examples/list.html少し:

http://jsfiddle.net/qhoc/nQJz6/

Firebug を調べると、と のdivolに余分なものがあることがわかりますli

liテンプレートを移動してビューで使用することtagName: 'li'で、それを取り除くことができることはわかっていItemsます。しかし、それはコードを所々変更しなければならないことを意味します。また、デザイン プロセスの一貫性liを保つために、 をテンプレートに保持することを好みます。

divテンプレートを変更せずにこれを取り除く方法は?

4

1 に答える 1

2

partial関数をオーバーライドして、次のjQuery#findようにします。

Backbone.LayoutManager.configure({
    partial: function(root, name, el, append) {
        // If no selector is specified, assume the parent should be added to.
        var $root = name ? $(root).find(name) : $(root);

        // Use the append method if append argument is true.
        // Set the element to append to be the first child.
        this[append ? "append" : "html"]($root, $(el).children().first());
    }
});

このメソッドは、グローバル (上記) またはローカル インスタンスで上書きできます。

afterRenderまた、新しい要素を使用するように調整する必要があります。

Backbone.LayoutView.extend({
    afterRender: function() {
        this.setElement(this.el.firstChild);
        this.delegateEvents();
    }
});

詳細はこちら: http://tbranyen.github.com/backbone.layoutmanager/#configuration/defaults

于 2012-10-25T05:24:24.773 に答える