如何阻止警报控制器第二次打开



我构建了一个方法,该方法会将自定义文本插入到离子选择多数组中。我使用警报框在关闭警报框时将自定义测试插入选择数组和输入字段中。 一切正常,除了数据插入输入字段后警报框将再次打开。如何确保异步输入自定义值多只运行一次。

.html

<ion-item class="ion-text-wrap">
<ion-label position="stacked">{{fromItem.Question}}</ion-label>
<ion-select multiple="true" #c (ionChange)="selectChangedMulti(c.value, i)" name="{{fromItem.name}}" [(ngModel)]="fromItem.input">
<ion-select-option *ngFor="let item of importQuestions[i].values" value="{{item.value}}" >{{ item.value }}</ion-select-option>
</ion-select>
</ion-item>

TS

selectChangedMulti(selectedValue: string[], index: string ) {
this.index = index;
if (selectedValue.includes("other")) {
this.inputCustomValuesMulti(selectedValue);
} else {
this.currentValue = selectedValue;
};
};
async inputCustomValuesMulti(selectedValue) {
const inputAlert = await this.alertController.create({
header: 'Enter your custom text:',
inputs: [ { type: 'text', placeholder: 'type in' } ],
buttons: [ { text: 'Cancel' }, { text: 'Ok' } ]
});
await inputAlert.present();
await inputAlert.onDidDismiss().then((data) => {
let customValueName: string = data.data.values[0]; 
if (customValueName) {
let indexFound = this.importQuestions[this.index].values.findIndex((item: string) => item === customValueName)
if (indexFound === -1) {
this.importQuestions[this.index].values.push({value: customValueName});
let importQuestion = selectedValue;
importQuestion.push(customValueName);
let passData = importQuestion;
let newArray = Array.from(passData);
// inserts new text into input field
this.importQuestions[this.index].input = newArray; 
} else {
console.log("else");
};
}; 
})
};

我最终做的是从传递数据中过滤掉其他数据。

let passData = importQuestion.filter(e => e !== "other");

现在,该方法在ionChange上不再看到"其他"。

相关内容

  • 没有找到相关文章