2016-09-19 13 views
-1

Nativescript app:私はdinamy TextFieldsを作成しています。ngModel&textfieldが点滅しないOnBlurイベント

1)Probme - 私がディナミカルに生成されたテキストフィールドをタップすると、キーボードはミリ秒間消滅して表示されます。私が本当に速く数回タップすると、キーボードはそのままです。

2)ダイナミックに生成されたTextFieldでonChange/onBlurイベントを作成するにはどうすればよいですか?私がtextFieldを更新するとき、私はメソッドを呼び出す必要があります。

ここでは、現在のリストは、次のとおりです。 (ぼかし)が動作しません。 <StackLayout col="1" row="0"> <ListView [items]="categoryService.attributes | async"> <template let-item="item" let-i="index"> <GridLayout rows="50 100"> <Label [text]="item.name"></Label> <TextField #input *ngIf="item.type=='text'" row="1" hint="Enter Value here" [text]="item.name" (blur)="categoryService.onAttributeChange(item, item.type, null, input.value)"></ TextField> <Switch #switch *ngIf="item.type=='checkbox'" row="1" checked="false" (checkedChange)="categoryService.onAttributeChange(item, item.type, null, switch.checked)"></Switch> <DropDown #aa *ngIf="item.type=='select'" row="1" [items]="categoryService.showAttributeValues(item.value)" [selectedIndex]="selectedIndex" (selectedIndexChange)="categoryService.onAttributeChange(item, item.type, aa.selectedIndex)"></DropDown> </GridLayout> </template> </ListView> </StackLayout>

ありがとう!あなたがtextChangeメソッドを使用することができ、これは個別にすべてのTextFieldのためのテキストを取得するのに役立ちます引数として$event返すために、あなたの2番目の質問について

+0

HI IvRRimUm、 'TextField'用のキーボードを示すに問題が役に立てば幸い

app.component.html

<StackLayout> <ListView [items]="myItems" (itemTap)="onItemTap($event)"> <template let-item="item" let-i="index" let-odd="odd" let-even="even"> <StackLayout [class.odd]="odd" [class.even]="even"> <Label [text]='"index: " + i'></Label> <Label [text]='"[" + item.id +"] " + item.name'></Label> <TextField (tap)="onTap($event)" hint="Enter text" text="" (textChange)="ontextChange($event)"></TextField> </StackLayout> </template> </ListView> </StackLayout> 

app.component.ts

import {Component, Input, ChangeDetectionStrategy} from '@angular/core'; import {TextField} from "ui/text-field"; import app = require("application"); class DataItem { constructor(public id: number, public name: string) { } } @Component({ selector: "my-app", templateUrl: "app.component.html", }) export class AppComponent { public myItems: Array<DataItem>; private counter: number; public status =true; constructor() { this.myItems = []; this.counter = 0; for (var i = 0; i < 50; i++) { this.myItems.push(new DataItem(i, "data item " + i)); this.counter = i; } } public onItemTap(args) { console.log("------------------------ ItemTapped: " + args.index); } public ontextChange(args){ console.log("text "+args.object.text); } } 

ListViewのはすでに修正されており、NS 2.4で利用可能になります - https://github.com/NativeScript/NativeScript/issues/2942 –

答えて

0

。以下のサンプルコードを見直すことができます。キーボードの表示に関する問題については、リストビューitemTapイベントに関連するものかもしれません。しかし、この問題はAndroid上でのみ再現されており、解決策を探しています。私はこれが