Angular 2とTypescriptを使ったMy Meteorアプリケーションは、クライアント側でサーバーデータを読み込んでいないようです。私はこの自動追尾をオンにしたのと同様に、tutorialに従いましたが、異なるコレクションを持つクライアント側のデータを表示できませんでした。Meteor:MinimongoはMongoDBと同期していません
チュートリアル(RC4)とは異なり、私は角度2 RC5を使用しています。私のクライアントのmain.ts、次のようになります。
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);
は、今私は(autopublishがオン)コレクション 『政党』を使用してチュートリアルから非常に簡単なサンプルをコピーしようとしました。
私は、ファイル両方/コレクション/ parties.collection.ts作成:代わりにapp.component.tsを使用しての
import {Mongo} from 'meteor/mongo';
import {Party} from '../interfaces/party.interface';
export const Parties = new Mongo.Collection<Party>('parties');
を、私が見える別の既存および機能性成分でコレクションをバインド私が呼び出す場合
import { Component } from '@angular/core';
import { Mongo } from 'meteor/mongo';
import template from './my-component.component.html';
import { Parties } from '../../../both/collections/parties.collection';
import { Party } from '../../../both/interfaces/party.interface';
@Component({
selector: 'my-selector',
template
})
export class MyComponent
{
parties: Mongo.Cursor<Party>;
constructor() {
this.parties = Parties.find();
alert(this.parties.count());
}
}
db.parties.find({});のように次のmongoコンソールのは、サンプルからサーバー側の挿入を設定しているため、3行を返します。
私のHTMLテンプレートは、チュートリアルと同じです:
<ul>
<li *ngFor="let party of parties">
<a [routerLink]="['/party', party._id]">{{party.name}}</a>
<p>{{party.description}}</p>
<p>{{party.location}}</p>
<button (click)="removeParty(party)">X</button>
</li>
警告(this.parties.countは()) "0" を返します - 両方がMongo.CursorとMongo.Cursorをしよう。私はまた、カーソルを取得し、配列を警告しようとしました。 「0」とエラーメッセージ「NgForはアレイなどのイテラブルへのバインドのみをサポートしています。しかし、私はそれが失敗したと思うクライアントは、サーバーが持っているデータを取得しません。
「パーティー」コレクションはサーバー側で利用できないようです。それが参照されている/サーバー側に読み込まれていることを確認していますか?たとえば、 '/ server/main.ts'のように' both/collections/parties.collection'をインポートしていますか? – hwillson
この問題に関する議論は流星フォーラムで行われています:https://forums.meteor.com/t/meteor-minimongo-does-not-synchronize-with-mongodb/29235 – Dolf