У меня было такое большое html-меню, которое я решил привязать, чтобы иметь возможность выпустить несколько подменю и избежать дублирования кода HTML. Родительский> ребенок (который тоже является родителем)> дочерний ...Angular 2 innerHTML (click) binding
Для контекста: В ng2_msList/msList.components.ts импортируется ColumnsManagements.ts как this.ColumnsManagementInstance. меню innerHTML отображается правильно, в ng2_msList/страниц/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 Section, here. Эти примеры вызывают функцию, которая очень легко устанавливается в том же файле/контексте (щелкните) = «MyAction()», но с моим контекстом я не могу получить способ правильно называть его.
Архитектура приложения, возможно, не так, как ожидал бы звонок Angular2.
Что нам нужно услышать не всегда то, что мы хотим услышать:/ Спасибо, это, безусловно, то, что мне нужно, даже это означает, что я был не прав;) Принято! –