关闭键盘时 TextView 不会失去焦点

TextView doesn't lose focus when the keyboard is dismissed

此行为仅发生在 Android 台设备上

<TextView [(ngModel)]="textData" updateTextTrigger="focusLost" (ngModelChange)="updateText()"></TextView>

由于我将 updateTextTrigger 用作 focusLost,模型不会更新,因为 TextView 始终保持焦点单元,我们将焦点切换到另一个元素,我可以'不要这样做,因为这是页面上唯一的输入元素。

这是 Android 设备上的预期行为吗?如何处理?

这是 NativeScript 的问题吗?应该作为问题创建吗?

我使用的是此处显示的去抖动管道的略微调整版本:https://github.com/numsu/angular2-debounce/blob/master/src/debounce.directive.ts

上面 link 中的代码也更新了模型,我不需要这样做。所以选择你的毒药。我的代码是:

import { Input, Output } from "@angular/core";
import { EventEmitter, ElementRef, OnInit, Directive } from "@angular/core";
import { Observable } from "rxjs";

@Directive({
  selector: '[debounce]'
})
export class DebounceDirective implements OnInit {
  @Input() debounceDelay: number = 700;
  @Input() debounceFromEvent: string = "tap";
  @Output() debounceFunction: EventEmitter<any> = new EventEmitter();

  constructor(private elementRef: ElementRef) {
  }

  ngOnInit(): void {
    const eventStream = Observable
        .fromEvent(this.elementRef.nativeElement, this.debounceFromEvent)
        .debounceTime(this.debounceDelay);

    eventStream.subscribe(input => this.debounceFunction.emit(input));
  }
}

您可以在 Label 或您喜欢的任何输入上使用它:

<Label debounce debounceDelay="700" (debounceFunction)="saveChanges()" (tap)="updateStock(selectedArticle.article, 1)" text="Update"></Label>