[英]How to dynamically create buttons on an ionic form
I would like to dynamically create buttons in ionic.我想在离子中动态创建按钮。 I can't find any information on this.
我找不到这方面的任何信息。 I tried a couple of quick tests which failed.
我尝试了几个失败的快速测试。
week = ` <ion-row>
<ion-col>
<ion-label (click)="showDate(11)">11</ion-label>
</ion-col>
<ion-col>
<ion-label (click)="showDate(12)">12</ion-label>
</ion-col>
<ion-col>
<ion-label (click)="showDate(13)">13</ion-label>
</ion-col>
<ion-col>
<ion-label (click)="showDate(14)">14</ion-label>
</ion-col>
<ion-col>
<ion-label (click)="showDate(15)">15</ion-label>
</ion-col>
<ion-col>
<ion-label (click)="showDate(16)">16</ion-label>
</ion-col>
<ion-col>
<ion-label (click)="showDate(17)">17</ion-label>
</ion-col>
</ion-row>`
week2 = " <ion-row><ion-col> <ion-label (click)='showDate(11)'>11</ion-label></ion-col><ion-col> <ion-label (click)='showDate(12)'>12</ion-label></ion-col><ion-col> <ion-label (click)='showDate(13)'>13</ion-label></ion-col><ion-col> <ion-label (click)='showDate(14)'>14</ion-label></ion-col><ion-col> <ion-label (click)='showDate(15)'>15</ion-label></ion-col><ion-col> <ion-label (click)='showDate(16)'>16</ion-label></ion-col><ion-col> <ion-label (click)='showDate(17)>17</ion-label></ion-col></ion-row>"
Basically I need to create a form or page based on passed in parameters which could drastically change the layout of the form.基本上我需要根据传入的参数创建一个表单或页面,这可能会极大地改变表单的布局。 It would be really inefficient to make a couple of dozen pages.
制作几十页确实效率低下。 It will also create a maintenance nightmare to have several if statements per button with numerous buttons that may or may not be visible.
它还将创建一个维护噩梦,每个按钮都有多个 if 语句,其中有许多可能可见也可能不可见的按钮。 Any suggestions?
有什么建议么?
Since you tagged angular, I guess you're using it, so you can use *ngFor, like the code bellow:由于您标记了 angular,我猜您正在使用它,因此您可以使用 *ngFor,如下面的代码:
<ion-list padding *ngFor="let item of items; let i = index">
<ion-item (click)="showDate(i)">{{ i }}</ion-item>
</ion-list>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.