我正在使用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!');
}
}