如何在页面加载时打开手风琴标签

时间:2019-04-05 14:25:35

标签: javascript angular accordion

默认情况下,我想在页面加载时打开标签。现在它已经折叠了,要打开手风琴标签,我必须单击按钮。我不想每次都单击按钮来打开选项卡。

<div><p-accordion >
  <p-accordionTab  header="Add  Detail" >
    <add-details [state]="'addNew'"></add-details>
  </p-accordionTab>
</p-accordion>
</div>

从评论中拉出:

  

open] = true,它不起作用未捕获的错误:模板解析错误:   无法绑定到“打开”,因为它不是的已知属性   'p-accordionTab'。 1.如果'p-accordionTab'是Angular组件,并且   它具有“打开”输入,然后验证它是否属于此模块。 2.如果   'p-accordionTab'是一个Web组件,然后添加'CUSTOM_ELEMENTS_SCHEMA'   到此组件的“ @ NgModule.schemas”以禁止显示此消息。   3.要允许任何属性,请将“ NO_ERRORS_SCHEMA”添加到以下项的“ @ NgModule.schemas”中:   此组件。 (“ <div><p-accordion >

1 个答案:

答案 0 :(得分:0)

您没有提供足够的代码来提供完整且经过测试的答案,但是基本上您想要做的是使用#语法(#accord)将ID应用于手风琴,然后在代码中使用ViewChild装饰器来提供对该手风琴的可变引用,然后在您的OnInit方法中对该引用调用open()方法。

类似这样的东西:

<div><p-accordion #accord>
  <p-accordionTab  header="Add  Detail" >
    <add-details [state]="'addNew'"></add-details>
  </p-accordionTab>
</p-accordion>
</div>

然后在您的变量定义中:

  @ViewChild('accord')
  private accord: Accordion;

在OnInit中:

ngOnInit() {
    this.accord.open();
    // or this.accord.tabs[0].selected = true;
}

我不确定手风琴的确切语法-我假设您使用的是PrimeNG手风琴,但是您尚未声明,因此很难准确地解决您的问题,但希望这可以为您指明正确的方向

如果您console.log(“ this.accord:”,this.accord);您将获得“手风琴”的所有方法和属性,并有望找到您要用来完成的工作的确切方法。