2016-09-13 8 views
0

流星/角型のアプリケーションを作成していますが、私はrc5にアップグレードしました。私はコンポーネントのmongoカーソルに基づいてメッセージのリストを表示しようとするとエラーが発生します。私はあなたが何かもっと必要な場合は、コードをダウン蒸留しようとしました、私に知らせてください。ここでangular2 rc5 upgrade、mongoカーソルの反復処理が失敗する

はコンポーネントです:私は

<ul> 
    <li *ngFor="let message of messages"> 
    {{message}} 
    </li> 
</ul> 

これは私がページを表示しようとすると、長いスタックトレースに失敗し、いくつかのネストされたエラーが、しかし:

import { Component, OnInit } from '@angular/core'; 
import { Mongo } from 'meteor/mongo'; 

import template from './messages-list.component.html'; 

@Component({ 
    selector: 'messages-list', 
    template 
}) 

export class MessagesListComponent implements OnInit { 
    messages: Mongo.Cursor<string>; 
    collection: Mongo.Collection<string> 

    ngOnInit() { 
    // just create an empty local collection for brevity, but it also fails with a named client/server collections 
    this.collection = new Mongo.Collection<string>(null); 
    this.messages = this.collection.find();  
    } 
} 

ここではHTMLテンプレートでありますこれがその根源だと思う:

Unhandled Promise rejection: (7) 
"EXCEPTION: Error in ./MessagesListComponent class MessagesListComponent - inline template:0:10 
ORIGINAL EXCEPTION: TypeError: undefined is not an object (evaluating 'async_1.ObservableWrapper.subscribe') 

私は、ビューまたはコンポーネントのコードは次のように:

ビュー:

<ul> 
    <!-- avoid iterating over messages --> 
    <!--li *ngFor="let message of messages"> 
    {{message}} 
    </li--> 
</ul> 

コード:

"dependencies": { 
    "@angular/common": "2.0.0-rc.5", 
    "@angular/compiler": "2.0.0-rc.5", 
    "@angular/core": "2.0.0-rc.5", 
    "@angular/forms": "0.3.0", 
    "@angular/platform-browser": "2.0.0-rc.5", 
    "@angular/platform-browser-dynamic": "2.0.0-rc.5", 
    "@angular/router": "3.0.0-rc.1", 
    "angular2-meteor": "0.6.2", 
    "angular2-meteor-auto-bootstrap": "0.6.0", 
    "angular2-meteor-polyfills": "0.1.1", 
    "angular2-meteor-tests-polyfills": "0.0.2", 
    "es6-shim": "0.35.1", 
    "material-design-lite": "^1.2.0", 
    "meteor-node-stubs": "0.2.3", 
    "reflect-metadata": "0.1.3", 
    "rxjs": "5.0.0-beta.6", 
    "zone.js": "0.6.12" 
} 

は誰もが持っています:ここで

// use a normal array instead of a cursor 
export class MessagesListComponent implements OnInit { 
    messages: string[] 

    ngOnInit() { 
    this.messages = [] 
    } 
} 

は私のpackage.jsonの依存関係していますどのようにこれを解決するアイデア?

答えて

1

hereのように私はまったく同じ問題に直面しています。

最初に、Mongo.Cursorを反復しようとすると、「NgForは配列などのIterablesへのバインディングしかサポートしていません」というエラーメッセージが表示されました。

私が見つけた唯一のアイデアは、カーソルをフェッチし、代わりに配列を使用することでした。しかし配列にはデータが含まれていなかったので、クライアント側で利用可能なデータがない可能性があり、流星の問題であると結論づけました。たぶん私は間違っていて、カーソルからデータを変換するもう1つの方法があります。

今日私はthis fileに従ってこの問題を解決しようとしましたが、このプロジェクトのセットアップは失敗しました。

残念ながら、私はAngular 2 RC 5と流星のmongoカーソルによると便利で実用的な例は見つかりませんでしたが、私は検索を続けます。