angular - 如何在 Angular 2.0 中以编程方式触发 PrimeNG Accordion Click?

标签 angular accordion primeng

我有一个 Accordion ,如下所示。

当链接被点击时,我需要触发所有 p-accordianTab 元素的点击事件。

这怎么可能?

<a (click)="openCloseAll()" >{{openCloseAllText}} all</a>
                <p-accordion [multiple]="true">
                    <div class="row" *ngFor="let category of result.Categories">                        

                            <p-accordionTab #accordianTab header="{{category.Name}}">

                            </p-accordionTab>                       

                    </div>
                </p-accordion>

我尝试将此“#accordionTab”添加到元素并从 TypeScript 访问它但不起作用:

@ViewChild('accordionTab') accordionTab: ElementRef;
 openCloseAllText: string = "Open";
 openCloseAll() {
        // get all accordions and click them
        this.openCloseAllText = this.openCloseAllText === "Open" ? "Close" : "Open";
        this.accordionTab.nativeElement.click();
    }

TypeError: Cannot read property 'nativeElement' of undefined

最佳答案

为什么不直接使用 Accordion 本身的制表符属性呢?

<p-accordion #accordion>
    <p-accordionTab header="Header Content">
         Body Content
    </p-accordionTab>
</p-accordion>

@ViewChild('accordion') accordion: Accordion;

closeAllAccordionTabs() {
    if(!isNullOrUndefined(this.accordion.tabs)){
        for(let tab of this.accordion.tabs) {
            if(tab.selected) tab.selected = false;
        }
    }
}

openAllAccordionTabs() {
    if(!isNullOrUndefined(this.accordion.tabs)){
        for(let tab of this.accordion.tabs) {
            if(!tab.selected) tab.selected = true;
        }
    }
}

关于angular - 如何在 Angular 2.0 中以编程方式触发 PrimeNG Accordion Click?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42901922/

相关文章:

jquery - jQuery Accordion 和 IE7 的分层问题

css - 如何覆盖基础 Accordion 样式?

html - PrimeNG p 表 : How to clear p-dropdown filter values when resetting table filters?

angular - 如何在DataTable中使用带有命令和参数的Primeng菜单?

angular - css-loader 构建 Angular 4 应用程序进行生产时出错

css - 方向 : rtl doesn't work with angular material cards?

javascript - 如何将 Angular2 Http 服务注入(inject) es6/7 类?

css - Angular CSS - 根据条件移动文本的位置

jquery - 需要修改 jQuery Accordion 菜单

html - primeNG - 为数据表实现 css 样式