我正在使用ng2-mqtt库,并在我的组件中使用了它,如下所示:

 import 'ng2-mqtt/mqttws31.js';
declare var Paho: any;

现在我得到以下错误:



如何解决此问题?

最佳答案

避免服务器错误的一种可能方法是不呈现使用window的组件(如果是选项)。就像是:

<ng-container *ngIf="isBrowser">
   <!-- mqttws31-component -->
   <mqttws31-component></mqttws31-component>
</ng-container>

可以从( ng2 )导入isBrowser
import { isBrowser } from 'angular2-universal';

或者,如果 ng4 + ,也可以在浏览器模块中定义:
// app.browser
@NgModule({
  providers: [
    { provide: 'isBrowser', useValue: true }
  ]
})

然后从构造函数注入(inject)
export class SomeComponent implements OnInit {
  constructor(@Inject('isBrowser') private isBrowser: boolean)
  ngOnInit() {
    // example usage, this could be anywhere in this Component of course
    if (this.isBrowser) {
      alert('we're in the browser!');
    }
}

07-26 09:39