0

我开始学习 angular2 和流星,来自http://angular-meteor.com/tutorials/angular2/3-way-data-binding

在第 3 课中,我在控制台中有 2 个错误:

 refreshingclient/app.ts (18, 11): Generic type 'Array<T>' requires 1 type argument(s).
 client/app.ts (20, 19): Cannot find name 'zone'.

当我从命令行向 Mongo 添加一些文档时,它们不会出现在页面上。

和我的 app.ts 文件:

/// <reference path="../typings/angular2-meteor.d.ts" />
import {Component, View, NgFor} from 'angular2/angular2';
import {Parties} from 'collections/parties';
import {bootstrap} from 'angular2-meteor';

@Component({
   selector: 'app'
})
@View({
   templateUrl: 'client/app.html',
   directives: [NgFor]
})
class Socially {
   parties: Array;
   constructor() {
      Tracker.autorun(zone.bind(() => {
        this.parties = Parties.find().fetch();
      }));
   }
}
bootstrap(Socially);

问题是什么?

4

2 回答 2

1

在 client/app.ts 文件中,说明 ( http://angular-meteor.com/tutorials/angular2/3-way-data-binding ) 显示:

class Socially {
    parties: Mongo.Cursor;

    constructor () {
        this.parties = Parties.find();
    }
}

它实际上应该是:

class Socially {
    parties: Mongo.Cursor<Object>;

    constructor () {
        this.parties = Parties.find();
    }
}

<Object>之后添加了通知Mongo.Cursor

如果您转到第 4 步,有一个链接可以下载代码的 zip 文件 ( https://github.com/Urigo/meteor-angular2.0-socially/archive/step_03.zip )。你会在那里看到代码是正确的。

于 2015-10-28T12:55:56.680 回答
1

kukamain.ts 和 load_parties.ts 只是为了在您的数据库中创建数据(如果没有)。因此,如果添加这些文件使其正常工作,那么您从命令行创建的数据一定有问题。我的猜测是您从命令行添加的数据进入了错误的集合(即派对与派对)。您可以通过键入来检查您的收藏和数据

meteor mongo

在项目的根目录中获取 mongo 提示。然后在 mongo 提示符下输入

show collections

这将显示您的数据库中的所有集合。你应该有一个叫做“派对”。键入以下内容以查看内容。

db.parties.find().pretty()

研究数据以确保所有属性名称都相同。如果您创建了一个属性调用“partyName”并且您的表单正在寻找“名称”,则不会显示任何内容。

于 2016-02-28T17:10:51.747 回答