Доступ к элементу представления в backbone.js - PullRequest
0 голосов
/ 27 ноября 2011

Я опустил пальцы в 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'
    }
}

Ответы [ 2 ]

4 голосов
/ 27 ноября 2011

2 проблемы:

  1. Вы определили el как селектор, поэтому он должен быть в DOM
  2. Вы пытались предупредить свойство конструктора el вместосвойство instance el.

Исправлено:

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);
    }
}
0 голосов
/ 27 ноября 2011

Свойство el должно быть элементом jquery, ссылающимся на существующий элемент DOM.

el : $('#some-id')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...