打开一个模式时,在Ionic 2 Angular 2中输入总位数如何?
当用户输入特定数量的数字时,我试图打开一个模式,但我所拥有的并不是我想要的,而是在单击时触发一个模式 这就是我所做的: test.html 我该怎么办?打开一个模式时,在Ionic 2 Angular 2中输入总位数如何?,angular,ionic-framework,ionic2,Angular,Ionic Framework,Ionic2,当用户输入特定数量的数字时,我试图打开一个模式,但我所拥有的并不是我想要的,而是在单击时触发一个模式 这就是我所做的: test.html 我该怎么办? 我将Ionic 2、Angular 2与Typescript一起使用。使用input=itemClicked$事件,而不是使用itemSelected= 然后可以使用$event.target.value在每次更改时获取该值。然后,当它是您想要的长度或值时,打开模式。如注释所示,每次用户输入字符并将事件作为参数传递给函数时,您都可以使用输入执行
我将Ionic 2、Angular 2与Typescript一起使用。使用input=itemClicked$事件,而不是使用itemSelected= 然后可以使用$event.target.value在每次更改时获取该值。然后,当它是您想要的长度或值时,打开模式。如注释所示,每次用户输入字符并将事件作为参数传递给函数时,您都可以使用输入执行函数,您可以获得值并使用它进行比较。这样做 您的HTML:
<ion-card class="card-space">
<ion-item>
<ion-label stacked>Amount</ion-label> <!--I can use floating here but I prefer stacked-->
<ion-input type="text" placeholder="Input Amount" (ionInput)="itemClicked($event)">
</ion-input>
</ion-item>
</ion-card>
使用此选项,它将与您希望的长度进行比较,并打开模式
希望这能有所帮助。您能进一步解释一下$event.target.value部分吗?请给出一个示例片段,am Angular 2 virgin@SantiagoIn在您的方法中,itemClicked,它将被多次调用,您应该能够使用item.target.value查看输入字段的值,以检查长度。但是,从Typescript获取错误时显示:类型“EventTarget”上不存在属性“value”
import {Component} from '@angular/core';
import {ModalController, NavController, NavParams} from 'ionic-angular';
import {Http} from "@angular/http";
import {CompleteTestProvider, ISearch} from "../../providers/complete-test";
import {CustomerDetailsPage} from "../customer-details/customer-details";
@Component({
selector: 'page-customer-issues-form',
templateUrl: 'customer-issues-form.html',
})
export class CustomerIssuesFormPage {
constructor(public navCtrl: NavController,
public navParams: NavParams,
private http: Http,
public completeTestProvider: CompleteTestProvider,
private _modalCtrl: ModalController) {
}
ionViewDidLoad() {
console.log('ionViewDidLoad CustomerIssuesFormPage');
}
itemClicked(item: ISearch) {
console.log(item);
//so open the modal here
let modal = this._modalCtrl.create(CustomerDetailsPage, {customer:item});
modal.present();
}
}
<ion-card class="card-space">
<ion-item>
<ion-label stacked>Amount</ion-label> <!--I can use floating here but I prefer stacked-->
<ion-input type="text" placeholder="Input Amount" (ionInput)="itemClicked($event)">
</ion-input>
</ion-item>
</ion-card>
itemClicked(event: any) {
// GET THE USER INPUT
let userInput: string = event.target.value;
// COMPARE THE LENGTH WITH THE AMOUNT YOU WANT, I'LL USE 10
if(userInput.length == 10){
let modal = this._modalCtrl.create(CustomerDetailsPage, {customer:item});
modal.present();
}
}