2016-12-08 10 views
0

私はメテオIonic2プロジェクトにあります。新しいアイテムをデータベースに挿入すると、新しく生成された_idを取得する必要があります。しかし、正しい方法でObservableにアクセスする方法はわかりません。Ionic2 +流星:新しい挿入物の_idを取得

サーバー:

newItem() { 
    if (!this.userId) 
    throw new Meteor.Error('unauthorized', 'User must be logged-in to insert an item'); 

    return Items.insert({ ownerId: this.userId, title: 'New Item' }); 
} 

クライアント:

MeteorObservable.call('newItem').subscribe({ 

    next:() => { 
    //get _id 
    }, 

    error: (e: Error) => { 
    console.log("Error: " + e); 
    } 

}); 
Items.insert

挿入_idを含むObservable<string>返します。クライアント側のnext:()内の_idにはどうすればアクセスできますか?

編集:私は、クライアント上でこれを試してみました

MeteorObservable.call('newItem').subscribe(
    data => { 
    console.log(data); 
    }, 
    error => { 
    console.log("Error: " + error); 
    } 
); 

しかしdataが空のオブジェクトObject {_isScalar: false}があります。 :(

EDIT2: 私もそれをここに投稿:https://forums.meteor.com/t/get--id-after-insert-from-returned-observable-on-client/32106

+0

これは 'next :()=> {}'何かが流星か、それともイオン性? – Ivaro18

+0

l '.subscribe(data => {console.log(" id: "+ data); }、error => {console.log( "エラー:" + error); } 012); – Ivaro18

+0

'next:'はチュートリアルです:https://angular-meteor.com/tutorials/whatsapp2/ionic/chats-mutations 私はあなたのコードに似たものを試しましたが、私は試してみます再び – SoS

答えて

1

エラーは、サーバー側にあった:それは新しい_idを返します追加.collection

Items.collection.insert(...)

を - 文字列

+0

なぜあなたは生のコレクションを使う必要がありますか?コレクションなしで使うことができるでしょうか? – user1595858

+0

コレクションがなければ、 _id。 – SoS

関連する問題