我开始从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);
问题是什么?
答案 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',则不会显示任何内容。