访问backbone.js中的视图元素

时间:2011-11-27 14:03:32

标签: javascript model-view-controller dom backbone.js

我已经在Backbone.js中浸泡了脚趾,到目前为止,这是一种真正的享受。很简单,但功能非常强大。很棒的图书馆!

我遇到了一个问题:我似乎无法访问我的观点的链接元素(el属性)。

我的示例提醒undefined。看看this fiddle,看看它的实际效果。

$(function() {
    // Init when DOM is Ready
    App.init();
});

var App = {
    init: function() {
        new App.MyView();
    }
}

App.MyView = Backbone.View.extend({
    el: '#some-id',
    initialize: function() {
        App.MyController.doSomething();
    }
});

App.MyController = {
    doSomething: function() {
        alert('MyView.el: ' + App.MyView.el); // Outputs 'MyView.el: undefined'
    }
}

2 个答案:

答案 0 :(得分:4)

2个问题:

  1. 您已将el定义为选择器,因此它必须位于DOM
  2. 您尝试提醒构造函数的el属性而不是实例el属性。
  3. 修正:

    http://jsfiddle.net/X8B2U/2/

    <div id="some-id"></div>
    
    $(function() {
        // Init when DOM is Ready
        App.init();
    });
    
    var App = {
        init: function() {
           new App.MyView();
    
        }
    }
    
    App.MyView = Backbone.View.extend({
        el: '#some-id',
        initialize: function() {
            App.MyController.doSomething(this);
        }
    });
    
    App.MyController = {
        doSomething: function( myView ) {
            console.log( myView );
            alert('MyView.el: ' + myView.el);
        }
    }
    

答案 1 :(得分:0)

el属性应该是引用现有DOM元素的jquery元素。

el : $('#some-id')