Angular 2:window.functionName中的绑定模型不起作用

时间:2016-08-01 09:07:02

标签: javascript angular

我目前的任务是将外部JS小部件从另一个服务附加到Angular 2项目。这个小部件需要在全局范围内声明的params函数作为回调,它将返回数据。 我最好的想法是以角度2的方式来实现它是在类中描述函数(下面的代码)。

initWidget(){
  window.widgetCallback = function(result){
    this.deliveryPoint = result;
  };
  boxberry.open('widgetCallback', 'some', 'params');
}

此功能正常运行且 deliveryPoint 会收到所需数据,但当我在模板中调用 {{deliveryPoint}} 时,它没有任何绑定 - 变量未更新。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

很难从问题中看出问题是什么,但我认为使用()=>代替function ()可以解决您的问题:

constructor(private cdRef:ChangeDetectorRef) {}

initWidget(){
  window.widgetCallback = (result) => {
    this.deliveryPoint = result;
    this.cdRef.detectChanges();
  };
  boxberry.open('widgetCallback', 'some', 'params');
}