根据我得到的响应,我将动态生成div。例如,如果我的回答是
Array = {response: {
" para1" : "para1name",
" para2" : "para2name"
}
}
<div *ngFor="let x of Array; >
<button>x.para1</button>
<div > content for para1</div>
</div>
我必须将json中的所有属性存储到一个数组中并遍历它以显示div。在这种情况下,我应该有2个div但它不起作用。当我点击para1的按钮时,当我点击para2 div时,我应该显示对于para1的div我应该为para1隐藏div并且应该为para2显示div。如何实现这一目标。
答案 0 :(得分:1)
参考您想要使用json对象https://stackoverflow.com/a/37431657/2013245
的密钥进行迭代的解决方案@Pipe({name: 'keys'})
export class KeysPipe implements PipeTransform {
transform(value, args:string[]) : any {
if (!value) {
return value;
}
let keys = [];
for (let key in value) {
keys.push({key: key, value: value[key]});
}
return keys;
}
}
上面的代码会将你的键和值推送到一个数组中,你可以迭代。
然后在你的component.ts中,你可以做这样的事情
<div *ngFor="let x of Array;" >
<div *ngFor="#temp of x | keys">
<button>temp.para1</button>
<div> content for para1</div>
<div>
</div>
希望有所帮助。
答案 1 :(得分:-1)
show: boolean = false;
clicked() {
console.log("clicked");
this.show = !this.show;
}
你的HTML代码 -
input type="submit" value="Search" (click)="clicked()"
<div *ngIf="show">
your div content to be displayed dynamically
</div>