3

バックボーンにビューがあり、いくつかの属性を作成したいと考えています。

私はそれをしました:

var ProgrammeDetailsView = Backbone.View.extend({

    $infoResult: $('#info-result'),
    $castingResult: $('#casting-result'),
    $broadcastResult: $('#broadcast-result'),
    $testResult: $('#test'),

[...]

そして、驚いたことに、次の結果が得られました。

 console.log(this.$infoResult); -> Array { selector="#test", forEach=forEach(), reduce=reduce(), more...}

ご覧のとおり、ID「#info-result」を持つオブジェクトを返す「this.$infoResult」を使用しましたが、実際には返されるのは最新の変数です。

私がそれを行う場合:

var ProgrammeDetailsView = Backbone.View.extend({

    $infoResult: '#info-result',
    $castingResult: '#casting-result',
    $broadcastResult: '#broadcast-result',
    $testResult: '#test',

問題ありません。参照:

console.log(this.$infoResult); -> "#info-result"

理由はわかりますか?

4

1 に答える 1

0

オブジェクトが初期化されているときに、参照している要素が利用可能であると確信していますか? 多くの場合、このオブジェクトを作成している可能性のあるビュー、またはそれを含む HTML は、まだ DOM を変更していない可能性があるため、それへの参照を取得できません。

于 2012-09-21T10:11:19.373 に答える