Родителя шаблон:Как пузыриться angular2 пользовательское событием
<ul>
<tree-item [model]="tree" (addChild)="addChild($event)"></tree-item>
</ul>
дерево шаблон элемента:
<li>
<div>{{model.name}}
<span [hidden]="!isFolder" (click)="addChild.emit(model)">Add Child</span>
</div>
<ul *ngFor="let m of model.children">
<tree-item [model]="m"></tree-item>
</ul>
</li>
Для приведенного выше примера, родитель получает AddChild события только от корня дерева пункта (непосредственный ребенок) , Можно ли пузырить событие addChild из любого дерева? Я использую угловой 2.0.0-rc.0.
Может ли объект JavaScript CustomEvent использовать? Есть ли против этого профессионал? В документах «Угловая» это не распространяется. Может быть, потому, что они не советуют напрямую обращаться к DOM. – Ryan
Для этого используется 'element.dispatchEvent()'. Угловое предлагает использовать общую службу вместо DOM-событий. Событие DOM может вызвать обнаружение изменений для всего приложения, в то время как служба с наблюдаемым только вызывает обнаружение изменений для компонента, который подписывается на наблюдаемый. –
@ GünterZöchbauer давайте предположим, что у нас есть приложение, где правый щелчок на якорях определенного класса/селектора должен отображать настраиваемое контекстное меню. В jQuery у нас было бы что-то вроде '$ ('body'). On ('contextmenu', 'a.context', myFunction)' Я бы скорее привязал событие к телу, а не к тегу. Вы говорите, что такой подход невозможен в Angular2? – igasparetto