0

FirebaseObjectObservable의 하위를 대상으로 지정할 수 있습니까? 아래에서 RcTestAppComponent.save()을 확인하십시오 (줄 바꿈).FirebaseObjectObservable - Angularfire2의 자식 가져 오기

예에서 :

import { Component } from '@angular/core'; 
import { AngularFire, FirebaseObjectObservable } from 'angularfire2'; 

@Component({ 
    moduleId: module.id, 
    selector: 'app', 
    template: ` 
    <h1>{{ item | async | json }}</h1> 
    <input type="text" #newname placeholder="Name" /> 
    <input type="text" #newsize placeholder="Size" /> 
    <br /> 
    <button (click)="save(newname.value)">Set Name</button> 
    <button (click)="update(newsize.value)">Update Size</button> 
    <button (click)="delete()">Delete</button> 
    `, 
}) 
export class RcTestAppComponent { 
    item: FirebaseObjectObservable<any>; 
    constructor(af: AngularFire) { 
    this.item = af.database.object('/item'); 
    } 
    save(newName: string) { 
    this.item.set({ name: newName }); 
    /* 
     // can I do somethin like this: 
     let index = 2; 
     this.item.child(index).set({ name: newName }); 
     // index is a dynamic number; 

     // when I use .child() on this.item, i receive a error: 
     // TypeError this.item.child is not a function 
    */ 

    } 
    update(newSize: string) { 
    this.item.update({ size: newSize }); 
    } 
    delete() { 
    this.item.remove(); 
    } 
} 

https://github.com/angular/angularfire2/blob/master/docs/3-retrieving-data-as-lists.md

답변

2

주셔서 감사합니다 나는 diffrent 접근 set 동적 경로 객체하기 위해 솔루션을 찾을 수 있었다.

export class RcTestAppComponent { 
    /* 
    item; 
    constructor(af: AngularFire) { 
     this.item = af; 
    } 
    */ 
    constructor(af: AngularFire) { 
    // cleaner TypeScript approach than the above commented lines :o fftopic 
    } 
    save(newName: string) { 
    let index = 2; // it's a dynamic number 
    this.af.database.object('/item/' + index).set({ name: newName }; 
    }