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...}

如您所见,我使用了“this.$infoResult”,它应该返回一个 id 为“#info-result”的对象,但它实际上是返回的最新变量。

如果我这样做:

var ProgrammeDetailsView = Backbone.View.extend({

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

我没有问题,cf:

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

你知道为什么吗?

4

1 回答 1

0

您确定在初始化对象时您所指的元素可用吗?很多时候,可能正在创建此对象的视图或包含它的 HTML 可能尚未修改 DOM,因此您不会获得对它的引用。

于 2012-09-21T10:11:19.373 回答