如何动态生成手风琴菜单?

时间:2018-07-20 02:59:03

标签: twitter-bootstrap angular5 accordion

您好,我正在Angular 6中开发Web应用程序。我正在尝试动态生成手风琴菜单。我正在打服务电话以获取菜单详细信息。基本上是树状结构。每当有子元素时,我都想再次进行服务调用并获取和显示子元素。此层次结构可能会持续到N个级别。所以我已经开始研究它。首先,当页面加载时,我进行服务调用并将其绑定到HTML。以下是我的服务电话和回复。

ngOnInit(){
    this.jsonservice.getJSON().subscribe(result=>{
        this.values=(this.keys(result));   
       });
}
keys(result) : Array<string> {
  return Object.values(result);
} 

拨打服务电话后得到的数据如下。

{
        "type": "abb.sst.config@1",
        "objectId": "fd1230e9-a407-4842-b16e-21d847a36d21",
        "model": "abb.ability.configuration",
        "version": 1,
        "internalUseOnly": "true",
        "properties":"children"
}

在上述数据中,标记属性包含子代作为值,因此我想显示属性,并且每当用户单击属性时,我都要进行另一个服务调用并从服务中获取一些数据并将其绑定到html中。

下面是我的HTML代码。

 <ul class="nav nav-stacked" id="accordion1">
                <li class="panel" *ngFor="let value of values"> 
                    <div *ngIf="value!='children'">
                            <a href="#">  {{value}}   </a>
                    </div>
                </li>
 </ul>

我发现很难编写适当的html来生成预期的结果。根据我的要求输出应该看起来像

 type + 
 Whenever user clicks type display abb.sst.config@1()  
 objectId+
 Whenever user clicks objectId display fd1230e9-a407-4842-b16e-21d847a36d21 
 model+ 
 Whenever user clicks model display abb.ability.configuration 
 properties +  
 Whenever user clicks provision to make api call and bind response as child 
 elements to properties

我只是试图实现这一点。我被困在以下地方。根据我的理解,我必须遍历键和值,如果值包含属性,则应提供进行api调用的条件。我不确定我所遵循的方法是否正确。有人可以帮助我以正确的方式帮助我实现这一目标吗?如果有任何帮助,将不胜感激。万分感谢。

0 个答案:

没有答案