加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

角度2(TypeScript)中的* ngIf的麻烦

发布时间:2020-12-17 07:38:51 所属栏目:安全 来源:网络整理
导读:我正在使用Angular 2 beta(TypeScript).我遇到了一个奇怪的问题.我试过Chrome,Firefox,Opera,都是一样的结果. 当我点击“切换”按钮,它可以成功显示/隐藏文本“Hello World
我正在使用Angular 2 beta(TypeScript).我遇到了一个奇怪的问题.我试过Chrome,Firefox,Opera,都是一样的结果.

当我点击“切换”按钮,它可以成功显示/隐藏文本“Hello World!”.

当我使用套接字从另一个浏览器发送命令时,布尔值“show”会成功改变背景,但是文本不会显示/隐藏,看起来页面不会刷新.

import {Component,View} from 'angular2/core';
import {bootstrap} from 'angular2/bootstrap';
import {NgIf} from 'angular2/common';

@Component({
    selector: 'app'
})
@View({
    directives: [NgIf],template: `
      <button (click)="clicked()">Toggle</button>
      <div>
        <div *ngIf="show">
          <h2>Hello World!</h2>
        </div>
      </div>
    `
})
class App {
    show: boolean = true;

    constructor() {
        Socket.on {
            If (getMessage) {
                this.show = !this.show;
            }
        }
    }

    clicked() {
        this.show = !this.show;
    }
}

bootstrap(App);
我认为这是一个与Zone有关的问题.后者负责通知Angular它需要处理更新.

这个问题可以给你一些提示:View is not updated on change in Angular2.

你可以尝试这样的事情:

export class App {
  constructor(ngZone:NgZone) {
    this.ngZone = ngZone;
    Socket.on {
      this.ngZone.run(() =>
        If (getMessage) {
            this.show = !this.show;
        }
      });
    }
  }

  }

这个问题也可能与你的问题有关:Angular2 child property change not firing update on bound property.

希望它能帮助你,蒂埃里

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读