使用先前选择的选项重新填充选择

时间:2018-04-16 14:46:05

标签: angular typescript select ionic-framework

当用户创建帖子时,他们可以从可以发送帖子的潜在用户列表中进行选择。然后,允许用户编辑帖子,但是,我现在处理两个对象:一个包含所有潜在用户的列表,另一个包含在创建帖子时选择的用户列表。

我的问题:在编辑帖子时,如何让所有潜在用户都可以选择,但是在创建帖子时选择的用户已被选中?



<ion-select [(ngModel)]="post.To" [ngModelOptions]="{standalone: true}" multiple="true" cancelText="Cancel" okText="OK">
    <ion-option *ngFor="let member of members.PotentialPeople" [value]="member">
        {{ member.Name }}
    </ion-option>
</ion-select>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

我认为你要找的是像

[selected] =“member.Name == potentialMember.Name”

<ion-option *ngFor="let member of members.PotentialPeople" [value]="member" [selected]="member.name == potentialMember.Name">

请参阅以下帖子中Perrier的回答。

How to set default selected value of ion-option?

当用户创建所选用户的帖子(不同于潜在用户的整个列表)时,听起来您正在保存单独的列表。

因此,如果你添加[selected] =“(保存到发布的用户)==(所有可能的用户)”,那就应该预先选择已经与编辑后的帖子相关联的用户。

如果这不起作用,请告诉我。 感谢。

答案 1 :(得分:0)

所以在前端,使用[compareWith]允许我将两个对象发送到控制器上的一个函数,然后比较两个对象。

在模板上:

&#13;
&#13;
<ion-select [(ngModel)]="post.To" [ngModelOptions]="{standalone: true}" [compareWith]="compareObjects" cancelText="Cancel" okText="OK">
  <ion-option *ngFor="let member of members.PotentialPeople" [value]="member">
    {{ member.Name }}
  </ion-option>
</ion-select>
&#13;
&#13;
&#13;

在控制器上:

&#13;
&#13;
compareObjects(currentSelection, potentialSelection): boolean {
    return currentSelection && potentialSelection ? currentSelection.Id === potentialSelection.Id : currentSelection === potentialSelection;
}
&#13;
&#13;
&#13;