访问backbone.js中视图的元素

Ahr*_*got 0 javascript model-view-controller dom backbone.js

我已经尝试过 Backbone.js,到目前为止,这确实是一种享受。非常简单,却又极其强大。很棒的图书馆!

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

我下面的例子会发出警报undefined。看看这个小提琴,看看它的实际效果。

$(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'
    }
}
Run Code Online (Sandbox Code Playgroud)

Esa*_*ija 5

2个问题:

  1. 你已经定义el为选择器,所以它必须在 DOM 中
  2. 您试图警告构造函数的el属性而不是实例el属性。

固定的:

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

<div id="some-id"></div>
Run Code Online (Sandbox Code Playgroud)
$(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);
    }
}
Run Code Online (Sandbox Code Playgroud)