0

これまでのところ、CRUD アプリを Firebase に移行できました。ニュースを一覧表示、作成、削除できます。編集に苦労していますが。

これは編集コンポーネントです。Firebase の特定のニュースの $key 値に等しいルート パラメータのスナップショットを取得します。次に、それをデータベース リストに連結します。

import { Component} from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { AngularFire, FirebaseListObservable } from 'angularfire2';

@Component({
  moduleId: module.id,
  selector: 'app-edit-news',
  templateUrl: 'edit-news.component.html',
  styleUrls: ['edit-news.component.css']
})
export class EditNewsComponent {
  noticia: FirebaseListObservable<any>;

  constructor(
    private route: ActivatedRoute,
    private af: AngularFire) { 
      this.news = af.database.list('news/'+this.route.snapshot.params['id']);
    }

}

私はオブザーバブルに慣れていませんが、これで私たちのような補間を使用してデータベースの具体的なオブジェクトにアクセスできると思いました{{news.title}}明らかに、私は間違っています。何か助けはありますか?

4

2 に答える 2

3

EditNewsComponent の html テンプレートで使用

{{(news | async)?.title}}    // you don't need '?' if it can't be null

おそらくあなたも変更する必要があります

this.news = af.database.list('news/'+this.route.snapshot.params['id']);

this.news = af.database.object('news/'+this.route.snapshot.params['id']);

リストではなくオブジェクトにアクセスするようにします。

于 2016-08-06T18:09:14.380 に答える
0

この構文を使用します

noticia: firebaseListObservable<any[]>;
constructor(private db: AngularFireDatabase,public af:AngularFireAuth) {
     this.noticia = db.list('/news',{
       query: {
          orderByChild:'id'
              }
     });
   }
于 2017-10-07T04:29:16.497 に答える