Укажите функцию viewController для обработчика событий на стороне клиента - PullRequest
0 голосов
/ 21 ноября 2018

Моя цель проста, все мои обработчики событий на стороне Клиента хотят быть организованными в {View} Controller.js

Чтобы добиться упоминания, я сделал следующее:

Укажитеконтроллер для просмотра

     X.TreeList().ID("navTreeList")
                    .Config("controller", "navWindowController")                    
                    .Listeners(l=> { l.SelectionChange.Fn = "navTreeList_SelectionChange";  })

И объявить функцию в контроллере:

 navTreeList_SelectionChange : function (sender, event) {
    if (sender.getSelection().hasChildNodes())
        return false;
    // alert()
    return;

}

Хорошо, что функция инициализации контроллера вызывается, ноОбработчик события navTreeList_SelectionChange не является.

причина: eventhendler не подделка.

Что нужно сделать для решения проблемы?

1 Ответ

0 голосов
/ 22 ноября 2018

Я нашел решение - вызвать функцию контроллера как обычную функцию JS, используя свойство Handler приемника SelectionChange вместо Fn

   X.TreeList().ID("navTreeList")
                        .Config("controller", "navWindowController")                    
                        .Listeners(l=> { l.SelectionChange.Handler = "#{navTreeList}.getController().navTreeList_SelectionChange";  })
...