NgZone / Angular2 / Ionic2 TypeError:无法读取未定义的属性’
发布时间:2020-12-17 07:32:07 所属栏目:安全 来源:网络整理
导读:我收到此错误TypeError:无法在Subscriber.js中读取未定义的属性’run’:229并且不知道为什么 – 在离子beta 10中这个代码工作正常…在11中没有. import {Component,NgZone} from '@angular/core';import {NavController} from 'ionic-angular';declare var
|
我收到此错误TypeError:无法在Subscriber.js中读取未定义的属性’run’:229并且不知道为什么 – 在离子beta 10中这个代码工作正常…在11中没有.
import {Component,NgZone} from '@angular/core';
import {NavController} from 'ionic-angular';
declare var io;
@Component({
templateUrl: 'build/pages/home/home.html'
})
export class HomePage {
static get parameters() {
return [NgZone];
}
zone: any;
chats: any;
chatinp: any;
socket: any;
constructor(public navCtrl: NavController,ngzone) {
this.zone = ngzone;
this.chats = [];
this.chatinp ='';
this.socket = io('http://localhost:3000');
this.socket.on('message',(msg) => {
this.zone.run(() => {
this.chats.push(msg);
});
});
}
send(msg) {
if(msg != ''){
this.socket.emit('message',msg);
}
this.chatinp = '';
}
}
而不是像这样注入它:
static get parameters() {
return [NgZone];
}
你为什么不这样做: import { Component,NgZone } from "@angular/core";
@Component({
templateUrl:"home.html"
})
export class HomePage {
public chats: any;
constructor(private zone: NgZone) {
this.chats = [];
let index: number = 1;
// Even though this would work without using Zones,the idea is to simulate
// a message from a socket.
setInterval(() => { this.addNewChat('Message ' + index++); },1000);
}
private addNewChat(message) {
this.zone.run(() => {
this.chats.push(message);
});
}
}
我正在添加私有区域:NgZone作为构造函数中的参数,然后我可以通过使用区域变量来使用run()方法,如下所示: this.zone.run(() => {
// ... your code
});
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
