У меня было такое большое html-меню, которое я решил привязать, чтобы иметь возможность выпустить несколько подменю и избежать дублирования кода HTML. Родительский > дочерний (родительский) > дочерний...
В контексте: В ng2_msList/msList.components.ts импортируется ColumnsManagements.ts как this.ColumnsManagementInstance. Меню innerHTML отображается правильно, в ng2_msList/pages/list.html:
<!-- COLUMNS DROPDOWN BUTTON -->
<ul [innerHTML]="msList.ColumnsManagementInstance.columnMenu" class="dropdown-menu" role="menu"> </ul>
С (в очень упрощенной версии моего кода): (Благодаря этому Stack Q)
setHtmlColumnsMenu() {
var self = this;
var htmlcolumnsmenu = '';
[...]
htmlcolumnsmenu += this.createColumnsList(this.getNoneRelationalColumns(true));
// which return something like a lot of html content and sometime in it :
// <a href="javascript:;" (click)="msList.ColumnsManagementInstance.toogleColumn(column)">
[...]
return htmlcolumnsmenu;
}
BUT (click) = "msList.ColumnsManagementInstance.toogleColumn(column)" (ранее в html-контенте) больше не работает. Он писал в представлении как простой текст в теге (до innerHTML он не отображался).
Я не могу найти способ сделать это снова. Я тестирую несколько способов вызова функции или, как я нашел в веб-ссылках, как на раздел Ang Doc, здесь. Эти примеры называют функцию, которая очень легко устанавливается в том же файле/контексте (щелкните) = "MyAction()", но в моем контексте я не могу получить способ правильно ее называть.
Архитектура приложения может быть не такой, как Angular2 ожидание вызова.