私はこのコンセプトを頭に入れようとしています。BackboneJs:elとtagNameの違いはどういう意味ですか?
あなたはこれを私に教えてもらえませんか、el:
属性とtagName:
属性の違いの簡単な例を提供できますか?いくつかの例において
、異なるビューは時々el:
を使用し、その他はtagName:
を使用します。私は特にこのexample
私はこのコンセプトを頭に入れようとしています。BackboneJs:elとtagNameの違いはどういう意味ですか?
あなたはこれを私に教えてもらえませんか、el:
属性とtagName:
属性の違いの簡単な例を提供できますか?いくつかの例において
、異なるビューは時々el:
を使用し、その他はtagName:
を使用します。私は特にこのexample
差の私の独自の実装をいじりだ
はこれです:
エルは、全体としてビューを表す実際のDOMノードへの参照を保持するために使用されるべきです。
これは、jQueryまたはw/eを使用して簡単にアクションを実行できることを意味します。 $(this.el).hide()または$(this.el).html( '私は今Jqueryオブジェクトです');
TagNameには、ELがされるDOMノードのタイプを決定するために使用される唯一の文字列です。デフォルトはdivですが、必要に応じて、あなたが好きなHTML要素にすることができます。
は考えてみましょう:
var view = Backbone.View.extend({
tagName: 'p',
initialize: function() {
_.bindAll(this, 'render');
},
render: function() {
$(this.el).html('I am a jQuery-ized paragraph');
return this;
}
});
$(document.body).append(new view().render().el);
あなたに実行しているかもしれない問題は、時にはあなたはtagNameをが無関係である場合には、ビューのインスタンス化にエルを設定することです:
var myView = new view({ el: $("someExistingEl") });
だから一緒に使われることはありませんか? –
これらを一緒に使用することはできません。 'el'を直接指定すると、' tagName'は無視されます。 –
これらは一緒に使うことができますが、this.el = $(somethingelse)を明示的に設定することはできず、this.tagNameを尊重することを期待しています。 $(this.el).html( 'some stuff')を使用すると、this.tagNameが何であれ内部になります。 –
var View = Backbone.View.extend({
tagName: 'span',
id: 'identity',
class: 'classy',
el: $(this.tagName), // or
el: $('<' + this.tagName + ' />', {
id: this.id, // identity
'class': this.class // classy
}) // this is jQuery shorthand for building an element fyi
});
var view = new View();
私はそれがうまくいくはずだと思います。
'el:$(this.tagName)'の 'this'はあなたの考えではありません。 –
elはDOMの既存の要素を参照し、tagNameは指定された場合はclassNameを持つtagNameで新しいdom要素を作成します。 – STEEL