如何添加一个新芯片,使其有序和按钮移动?
How to add a new chip so its nicely ordered and button shifting?
我想添加带有新标签的筹码,它们应该被很好地排序,所以接下来的下一个筹码应该紧挨着第一个筹码,第三个应该在第二个筹码之后等等。同时添加按钮也应该移到右侧,所以它总是在最后创建的芯片的前面。直到现在我只有添加新芯片的功能。我不希望您进行编码工作,只是告诉我我该怎么做,或者您是否有可以复制的代码示例。因为我没有在网上找到任何教程或视频。我现有的代码如下。
HTML
<ion-chip #chip *ngFor="let tag of tagName">
<ion-label>{{tag.tag}}</ion-label>
<button ion-button clear color="dark" (click)="remove(chip)">
<ion-icon name="close-circle"></ion-icon>
</button>
</ion-chip>
<button class="buttonIcon" ion-button small round icon-only (click)="add(chip)"> <!--When "add" button is pressed -> opens searchbar (not done yet)-->
<ion-icon name="add"></ion-icon>
</button>
TS
public tagName = [
{
"tag": "#men"
},
];
…
add(chip: Element) {
this.tagName.push();
}
将您的添加按钮包裹在离子芯片元素中,它将在右侧对齐
这样试试
Html
<ion-chip #chip *ngFor="let tag of tagName">
<ion-label>{{tag.tag}}</ion-label>
<button ion-button clear color="dark" (click)="remove(chip)">
<ion-icon name="close-circle"></ion-icon>
</button>
</ion-chip>
<ion-chip color="primary">
<button ion-button clear color="light" (click)="add(chip)">
<ion-icon name="add"></ion-icon>
</button>
</ion-chip>
你可以参考 stackblitz demo
为简单起见,使用 push
添加和 splice
删除。对于添加你不需要任何参数的方法,但对于删除,只需传递芯片的 id。
export class Tag {
tag: string;
constructor(values: Object = {}) {
Object.assign(this, values);
}
}
...
tagName: Tag[] = [];
add(): void {
let id = this.tagName.length + 1;
this.tagName.push(new Tag({ tag: "tag" + id }, ));
}
remove(id: number): void {
this.tagName.splice(id, 1);
}
HTML
<ion-chip #chip *ngFor="let tag of tagName; let i = index">
<ion-label>{{tag.tag}}</ion-label>
<button ion-button clear color="dark" (click)="remove(i)">
<ion-icon name="close-circle"></ion-icon>
</button>
</ion-chip>
<button class="buttonIcon" ion-button small round icon-only (click)="add(chip)">
<ion-icon name="add"></ion-icon>
</button>
我想添加带有新标签的筹码,它们应该被很好地排序,所以接下来的下一个筹码应该紧挨着第一个筹码,第三个应该在第二个筹码之后等等。同时添加按钮也应该移到右侧,所以它总是在最后创建的芯片的前面。直到现在我只有添加新芯片的功能。我不希望您进行编码工作,只是告诉我我该怎么做,或者您是否有可以复制的代码示例。因为我没有在网上找到任何教程或视频。我现有的代码如下。
HTML
<ion-chip #chip *ngFor="let tag of tagName">
<ion-label>{{tag.tag}}</ion-label>
<button ion-button clear color="dark" (click)="remove(chip)">
<ion-icon name="close-circle"></ion-icon>
</button>
</ion-chip>
<button class="buttonIcon" ion-button small round icon-only (click)="add(chip)"> <!--When "add" button is pressed -> opens searchbar (not done yet)-->
<ion-icon name="add"></ion-icon>
</button>
TS
public tagName = [
{
"tag": "#men"
},
];
…
add(chip: Element) {
this.tagName.push();
}
将您的添加按钮包裹在离子芯片元素中,它将在右侧对齐
这样试试
Html
<ion-chip #chip *ngFor="let tag of tagName">
<ion-label>{{tag.tag}}</ion-label>
<button ion-button clear color="dark" (click)="remove(chip)">
<ion-icon name="close-circle"></ion-icon>
</button>
</ion-chip>
<ion-chip color="primary">
<button ion-button clear color="light" (click)="add(chip)">
<ion-icon name="add"></ion-icon>
</button>
</ion-chip>
你可以参考 stackblitz demo
为简单起见,使用 push
添加和 splice
删除。对于添加你不需要任何参数的方法,但对于删除,只需传递芯片的 id。
export class Tag {
tag: string;
constructor(values: Object = {}) {
Object.assign(this, values);
}
}
...
tagName: Tag[] = [];
add(): void {
let id = this.tagName.length + 1;
this.tagName.push(new Tag({ tag: "tag" + id }, ));
}
remove(id: number): void {
this.tagName.splice(id, 1);
}
HTML
<ion-chip #chip *ngFor="let tag of tagName; let i = index">
<ion-label>{{tag.tag}}</ion-label>
<button ion-button clear color="dark" (click)="remove(i)">
<ion-icon name="close-circle"></ion-icon>
</button>
</ion-chip>
<button class="buttonIcon" ion-button small round icon-only (click)="add(chip)">
<ion-icon name="add"></ion-icon>
</button>