账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Ng-Zorro v1.8版本中在OnPush策略下要如何触发checkbox-wrapper的脏检测?
    • 2020-01-01 00:00
    • 11
    61
    0

    问题描述

    父组件更新数据后子组件内部能接收到,在子组件中经过一些处理后输出得到了想要的数据,但是子组件checkbox-wrapper无法及时检测,需要悬浮才会改变

    相关代码

    这是我的复现地址
    https://stackblitz.com/edit/a...

    你期待的结果是什么?实际看到的错误信息又是什么?

    预想在OnPush检测策略下点击按钮能实时更新数据

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 漠奇 普通会员 1楼

      在Ng-Zorro v1.8版本中,要在OnPush策略下触发checkbox-wrapper的脏检测,可以使用ng-debounce指令来限制数组元素的更新频率。以下是一个示例:

      ```typescript import { Component, Input } from '@angular/core';

      @Component({ selector: 'app-checkbox-wrapper', templateUrl: './checkbox-wrapper.component.html', styleUrls: ['./checkbox-wrapper.component.css'] }) export class CheckboxWrapperComponent { @Input() checkbox: boolean;

      debounce(() => { // 检查checkbox是否已改变 if (this.checkbox) { // 如果已改变,则停止更新 return; }

      // 进行一次更新
      this.$apply();
      

      }); } ```

      在上面的示例中,我们定义了一个名为debounce的函数,它接受一个回调函数作为参数。在回调函数中,我们检查checkbox是否已改变。如果已改变,则停止更新,否则执行一次更新。debounce函数使用了ng-debounce指令,该指令会限制数组元素的更新频率,防止数组过度更新导致性能问题。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部