これまでのところ、Stack Overflowでこの問題を解決するのに少し時間を費やしました。私はイオン3 を使用していFirebase subscribe関数でIonic 3イオンチェックボックスのチェック属性が照会できない
は...など、連絡先のリストの一部として、私のhtmlページに属性をチェックする関連する.TSでtoggleItem機能を持っている..and
<ion-list>
<ion-item *ngFor="let friend of friends_profile_data | async ;">
<ion-label>
<h2>{{friend.name}}</h2>
</ion-label>
<ion-checkbox [checked]="friend.checked" (click)="toggleItem(friend)" ></ion-checkbox>
</ion-item>
</ion-list>
ファイルは:
私が正常に同じ.TSファイルに次のように使用することにより、各「友達のこの状態を照会することができたダミーのデータベースと私のテストランで
toggleItem(friend): void {
friend.checked = !friend.checked;
}
(があったなし|イオンで非同期ローカルダミーDBのコンテンツ行)。
これは、連絡先リスト内のすべての友人を経由して、選択したものを見つけ、選択されていないものではなく、自分の名前を教えてくれます。すべての良い。
うまくいけば、私はすべてをFirebaseデータベースに接続するように移動しました。 Firebaseのsubscribe関数の中で上記と同様のクエリを実行しようとしたときに機能していないことを除いて、すべてうまくいっています。ここでは、そのためのコードが...
この場合friends_profile_dataがダミーローカルデータベースに見られるようなデータの同様のセットを返すが、私のFirebase DBからさthis.friends_profile_data.subscribe(friends => {
friends.forEach((friend) => {
if (friend.checked) {
console.log(friend.name);
}
})
});
次のようになります。
リストで選択した友人だけを返すのではなく、すべての友人の名前を記録しています。friend.nameをIF文に登録していないかのように記録します。
私は、次のような場合の代替案、それらのいずれか働いていた、使用して試してみた:何も動作..but
friend.checked = true
friend.checked == true
friend.checked === true
を。
これは機能しますか? Firebusサブスクリプション機能内の属性をチェックして、のクエリを実行して導入されたことがわからない問題がありますか?
また、ローカルのダミーDBを扱うことができて幸運でしたが、実際にはFirebaseのsubscribe関数内でこれに近づくより堅牢な方法がありますか? チェックのアトリビュートアプローチの使用は、私が初期の2日間にしばらく経っていたチュートリアルからのものです。
誰もが提供できる洞察力をお寄せいただきありがとうございます。これは私の最初の投稿なので、できるだけ参考になるように努力しましたが、問題を解決するために追加できるものがあれば教えてください。
ありがとうジョー、これらの機能は非常に便利です。Firebase DBに存在するもの(例えば、friend => friend.name === 'Some Name')などのために、マップとフィルタが動作していますが、イオンを認識しない同じ問題があるようです-checkbox ** checked **属性** checked.friend **は、DBには存在しませんが、テンプレートには存在しません。 – sean
friends_profile_data変数は、コンストラクタで次のようにFirebase DBに接続されていれば、それが何らかの形で役立つことがわかります。 'this.friends_profile_data = this.dataProvider.angularfireDB.list('/user_friends/$ {this.userCalendarProvider.user_id}/');' 上記のための編集、** friend.checked ** – sean
ありがとうsean。私はイオンに慣れていない。私はいくつかの読書を行います。 –