2013-11-23 4 views
0

У меня есть вид 1 сетки топливного фильтра с форматирующим полем со списком для дополнительной колонки. У меня также есть другое представление2, где есть меню. При щелчке какой-либо кнопки/выпадающего списка в view2 у меня есть событие.Магистральный доступ к данным/событию другого вида

В представлении2, как мы получаем окно со списком view1? Вы, наверное, догадались, я очень новичок в развитии.

+0

Я только что прошел - http://www.benknowscode.com/2013/01/managing-events-between-multiple_3253.html. Лучше ли вариант2? Или Мэрионетта это то, что с ней лучше? – skumar

ответ

0

Это образец, который я гавань использовали:

в глобальном пространстве имен (App) определить отправитель событий

App.Dispatcher = _.clone(Backbone.Events); 

в View2, вы выпадающий не хочет view1 доступа. Я не уверен, что вы хотите сделать здесь, но я предполагаю, что вы хотите, чтобы что-то случилось с комбинированными полями, когда кнопка/выпадающее меню нажата в view2.

так, для этого, на ваш взгляд2.

view2 = Backbone.View.extend({ 
    //other view stuff 
    events: { 
    'click button': 'onClickButton' 
    }, 

    onClickButton: function() { 
    App.Dispatcher.trigger('buttonClicked', [event params you wanna pass]); 
    } 
}); 

и сверху1.

view1 = Backbone.View.extend({ 
    //other view stuff 

    initialize: function() { 
    //other view initialize suff 
    App.Dispatcher.on('buttonClicked', this.handleButtionClicked, this); 
    }, 

    handleButtionClicked: function() { 
    //do stuff to combo boxes 
    } 
}); 

в основном, идея, когда вы нажимаете на кнопку в View2, view2 уведомляет это событие через глобальную App.Dispatcher. и view1 подписывается на это событие в App.Dispatcher, и когда он запускается, view1 должен знать, как его обрабатывать.

+0

Отлично! Это отлично звучит с помощью глобального обработчика событий для обмена сообщениями inter view. Я должен был объяснить это раньше - но то, что я действительно хочу, - так как view1 имеет комбинированное поле в сетке, в окне view1 можно выбрать несколько комбинированных полей. Теперь view2, который представляет собой меню, имеет выпадающую/кнопку, которая при нажатии на нее - нужна чтобы узнать, какие во всех списках выделены. Это что-то, что я должен создать глобальные переменные и найти push, который в view1 комбо-выбор и доступ, который в view1..I действительно не нравится глобальный механизм пула. Там должен быть какой-то изящный способ. Ценю вашу помощь! – skumar

+0

Я вижу. Я не вижу ваше приложение, поэтому я действительно не знаю, правильно ли принято решение о дизайне размещения двух разных видов. Но в вашем случае я бы создал модель (базовую модель) для поддержания статуса combobox и передал ее обоим представлениям. когда какая-либо из comboboxes в view1 изменилась, обновите атрибуты модели, а в view2, когда нажата кнопка, прочитайте атрибуты в модели, чтобы решить, что нужно сделать. –

+0

Спасибо Yurui! Я попробую и опубликую это. – skumar

Смежные вопросы