2015-04-07 4 views
0

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

ответ

0

В основном в Backbone лучше общаться между двумя компонентами все, что вам нужно сделать, это создать пользовательский объект и расслоение плотной есть его расширить Backbone.Events (http://backbonejs.org/#Events)

Затем определить пользовательское событие и функцию обратного вызова для обработки пользовательское событие.

// A CUSTOM JS OBJECT THAN HANDLES ALL OUR APP'S CUSTOM EVENTS. 
var MyAppEventBus = _.extend({},Backbone.Events); 

// Options is a Javascript object that contains details required 
// load the details data grid. 
MyAppEventBus.on("datagrid:showDetailsView",function(options){ 
    // LOAD THE DATA REQUIRED FOR THE DETAILS GRID. 
    // CREATE A DETAILS GIRD VIEW AND PASS THE DATA TO THE DETAILS GRID VIEW INSTANCE. 
}); 

В Master Data Grid Component View классе, имеет слушатель и обратный вызов, определенный для прослушивания событий, инициированных открыть данные сетки.

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

Запуск пользовательского события с использованием объекта шины событий, передающего созданный объект javascript в качестве параметра.

//In the main data grid view have an event listener that handles 
//the click to open child grid view. 
events :{ 
    "click .showDetailGridlnk" : "showDetailsGrid" 
}, 
showDetailsGrid : function(event) { 
    event.preventDefault(); 
    // PREPARE THE OPTIONS OBJECT HERE 
    var options = {}; 
    // YOU CAN ALSO SET A DYNAMICALLY GENERATED CONTAINER #ID IN OPTIONS 
    // WHICH CAN BE USED TO INSERT THE DETAILS DATA GRID. 
    options.el = "<some_dynamic_container_id>"; 
    MyAppEventBus.trigger("datagrid:showDetailsView",options) 
} 
+0

это похоже на хороший вариант .... спасибо за предложение этого. я реализую его и посмотрю, как он работает. –

+0

Мне просто интересно, как получить данные, необходимые для сетки данных с демонстрационной страницы. как передать его на вид сетки данных –

+0

Как вы передаете данные в ваш основной компонент сетки? Обновите код того, что вы делали до сих пор, и где вы чувствуете, что вас поразили, чтобы мы могли лучше помочь. – Balaji

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