2017-04-05 97 views
1

我有這樣的一個模板下拉:角2化妝功能

<div class="dropdown-trigger" (click)="contentToggle()"> 
    <ng-content select="dropdown-trigger"></ng-content> 
</div> 
<div class="dropdown-content" *ngIf="showContent"> 
    <ng-content select="dropdown-content"></ng-content> 
</div> 

我希望能夠使用contentToggle()在任何我放在ng-content讓我能有一個可以用來關閉下拉額外的元素,例如我可能要關閉按鈕...什麼是做到這一點的最好方法是什麼?

+0

什麼是你正在嘗試做的。解釋,因爲它是目前還不清楚 – Aravind

+0

@Aravind補充更詳細,是否足夠呢? – nick

+0

默認情況下,這由引導處理。 – Aravind

回答

1

這將這樣的伎倆:

<dropdown #dropdown> 
    <button dropdownTrigger (click)="dropdown.toggleDropdown()">Click me</button> 
</dropdown> 

你只是一個局部模板變量分配給它,您可以訪問所有組件中有組件。包括你想要調用的功能。

請注意,你應該/需要將select位也改成這樣:

<ng-content select="[dropdownTrigger]"></ng-content> 
<ng-content select="[dropdownContent]"></ng-content> 
+0

這就是它!謝謝! – nick

1

角讓你做這一招,例如:

import { Component } from '@angular/core' 

@Component(){...} 
export class DropdownComponent { 
    toggleDropdown() {...} 
} 

//parent.component.html 
<dropdown-content #myDropdown> 
    <a (click)="myDropdown.toggleDropdown()">Close the dropdown</a> 
</dropdown-content> 

如果你想獲得一個回調的情況下,我建議你閱讀Output Decorator

+0

這是不對的。你不通過'NG-content' .. – Chrillewoodz

+0

@Chrillewoodz你是正確的,我做了一個錯誤 – Cassiano