nativescript 2/angular 2 を使用しており、データ バインディングに問題があります。私はangularJS 1.xに精通していますが、これについて読んだドキュメントは機能するはずです。ngModel のさまざまなバリエーションを試しましたが、機能しませんでした。record.name の値は「未定義」です。
レコード クラスには、id フィールドと name フィールドが定義されているだけです。もう 1 つの質問は、コンポーネントへの変更イベントをどのようにトリガーするかということです。ユーザーがテキスト入力を開始している場合、入力中にコンポーネント内の関数を呼び出すにはどうすればよいですか?
以下は私の「html」です:
<StackLayout>
<Textfield hint="Search for a Record" [(ngModel)]="record.name" (returnPress)="searchRecord()"></Textfield>
<Label text="{{ record.name }}"></Label>
<Button text="Search" class="btn" (tap)="searchRecord()"></Button>
<Button text="Take Photo" class="btn" (tap)="takePhoto()"></Button>
</StackLayout>
レコード コンポーネントを追加します。
import {Component} from "@angular/core";
import cameraModule = require("camera");
import imageModule = require("ui/image");
import {Record} from "../../shared/record/record";
import {RecordService} from "../../shared/record/record-service";
@Component({
selector: "add-record",
templateUrl: "pages/add-record/add-record.html",
styleUrls: ["pages/add-record/add-record-common.css"],
providers: [ RecordService ]
})
export class AddRecordPage {
record: Record;
constructor(private _recordService: RecordService) {
this.record = new Record();
}
searchRecord() {
console.log(this.record.name + '!');
this._recordService.add(this.record)
.subscribe(
() => {
alert('a');
},
() => {
alert('b');
}
);
}
takePhoto() {
cameraModule.takePicture().then(picture => {
console.log("Result is an image source instance");
var image = new imageModule.Image();
image.imageSource = picture;
});
}
}
ありがとう!