Как реализовать общую функциональность для нескольких представлений с помощью backbone.js - PullRequest
1 голос
/ 10 ноября 2011

Здравствуйте. Я пытаюсь реализовать пользовательские функции в нескольких представлениях с помощью backbone.js. Например, мне нужно иметь все текстовые поля ввода в приложении, чтобы изменить их внешний вид, когда они получают фокус. Я думаю унаследовать window.BaseView от Backbone.View.extend, а затем иметь все мои представления для расширения BaseView. Не могли бы вы сказать мне, если я в правильном направлении? У вас есть другие предложения? Вы реализовали нечто подобное?

Ответы [ 2 ]

3 голосов
/ 10 ноября 2011

Я бы поместил общие функциональные возможности в базовый прототип и сделал бы, чтобы все представления расширяли его, или я создал бы объект mixin, который имеет эту функциональность, и расширил бы представление с помощью mixin.

1 голос
/ 10 ноября 2011

Я не использовал магистраль для аналогичной задачи, так как разные виды имеют разные элементы, и связывание одной и той же функции фокусировки более одного раза также расточительно.Я бы сделал следующее:

//If document is the container for your application, else could be #myapplication and so on.
jQuery( document ).delegate( 'input[type="text"]', "focusin focusout",
    function(e){

        if( e.type == "focusin" ) {
        jQuery( this ).addClass("textbox-focused");
        }
        else {
        jQuery( this ).removeClass( "textbox-focused" );
        }

    }
);

или CSS (не уверен в поддержке браузера):

input[type="text"]:focus {
background-color: blue;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...