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 }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |