Angular2 Meteor绑定来自this.call的数据

时间:2016-06-16 04:14:58

标签: meteor angular angular2-meteor

方法

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;。

2 个答案:

答案 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

https://github.com/Urigo/angular2-meteor/issues/279