来自angular-meteor.com的课程中的问题

时间:2015-10-28 05:43:23

标签: mongodb meteor angular angular2-meteor

我开始从http://angular-meteor.com/tutorials/angular2/3-way-data-binding

学习angular2和meteor

在第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);

问题是什么?

2 个答案:

答案 0 :(得分: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)。你会在那里看到代码是正确的。

答案 1 :(得分:1)

kuka- main.ts和load_parties.ts只是在数据库中创建数据(如果没有)。因此,如果添加这些文件使其工作,则从命令行创建的数据肯定存在问题。我的猜测是你从命令行添加的数据进入了错误的集合(即派对与派对)。您可以通过键入

来检查您的馆藏和数据
meteor mongo

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

show collections

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

db.parties.find().pretty()

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