方法
Meteor.methods({
'test' : function(test: string) {
return test;
}
})
组件
我的课程延伸MeteorComponent
show: string;
constructor() {
this.call('test', 'txt', (err, res) => {
this.show = res
});
}
查看
<span>{{show}}</span>
它没有显示任何内容,因为我预计它会显示&#39; txt&#39;。
答案 0 :(得分:1)
与autorun
不同,call
没有参数告诉它在NgZone
内运行,因此Angular的变更检测无法启动。
你需要这样写:
constructor(zone: NgZone) {
this.call('test', 'txt', (err, res) => {
zone.run(() => {
this.show = res;
});
});
}
答案 1 :(得分:1)
只需添加@Martin C.答案的解释。
在Angular2-Meteor 0.5.6(尚未发布到NPM)中,您应该可以使用autoBind
。
this.call('test', 'txt', (err, res) => {
this.show = res;
}, true); // set `autoBind` to `true` here