离子 - 当用户按下键盘上的进入/输入时创建标签

时间:2017-10-21 12:11:41

标签: javascript angular typescript ionic-framework ionic2

我目前有一个移动应用程序,您可以搜索某些项目,当前搜索功能的工作方式是当您按空格时,这将被创建为标记。而不是当用户按下'空格键,我希望它在用户按下'时创建标签。 go / search / enter 在移动键盘上。

以下代码是我目前使用的功能,并在" "存在。这需要改变,因为有些项目是2个单词,例如 Chai Seeds

  constructor(public keyboard: Keyboard, public formBuilder: FormBuilder, public navCtrl: NavController, public navParams: NavParams, public apiAuthentication: ApiAuthentication, private http: Http) {
    this.tags = [];
    this.myForm = this.formBuilder.group({
      tags: ['']
    });
    this.myForm.get('tags')
      .valueChanges
      .subscribe((value: string) => {
        if(value.indexOf(' ') > -1) {
          let newTag = value.split(' ')[0];
          console.log(newTag);
          if(newTag) {
            this.tags.push(newTag);
            this.myForm.get('tags').setValue('');
          }
          this.searchRecipeDB(this.tags);
        }
      });
    }

我无法弄清楚go / enter按钮在移动设备上的工作方式,所以如果你能告诉我要改变什么,那就太棒了。

谢谢,

1 个答案:

答案 0 :(得分:0)

假设你正在使用离子输入,ion-textarea,你可以听取按键事件:

<ion-input (keypress)="onPress($event.which) ... >

.TS:

onPress(keyCode: number): void {
 if(keyCode === 13) { 
   // the keyCode for return/go/enter is 13 (iphone's)
   doWhateverYouWant();
 }
}

您可以在此处搜索其他键码: https://www.w3schools.com/charsets/ref_utf_basic_latin.asp