Angular 6中,使用lambda表达式时,directive的ngOnChanges方法不起作用。
创始人
2024-10-16 11:32:15
0

在Angular中,使用lambda表达式时,directive的ngOnChanges方法不会被自动调用。这是因为lambda表达式会创建一个新的函数实例,而不是原始的方法实例,导致Angular无法检测到属性的变化。

为了解决这个问题,可以使用bind方法将lambda表达式绑定到正确的上下文。这样,directive的ngOnChanges方法就能够正常工作。

以下是一个示例代码,演示了如何在Angular 6中使用bind方法来解决这个问题:

import { Directive, Input, OnChanges, SimpleChanges } from '@angular/core';

@Directive({
  selector: '[myDirective]'
})
export class MyDirective implements OnChanges {
  @Input() myInput: string;

  ngOnChanges(changes: SimpleChanges) {
    console.log('ngOnChanges called');
    if (changes.myInput) {
      console.log('myInput changed:', changes.myInput.currentValue);
    }
  }
}

@Component({
  selector: 'my-component',
  template: '
' }) export class MyComponent { myProperty: string = 'initial value'; constructor() { // 使用bind方法将lambda表达式绑定到正确的上下文 this.myPropertyChange = this.myPropertyChange.bind(this); } // 使用bind方法将lambda表达式绑定到正确的上下文 myPropertyChange = (newValue: string) => { console.log('myProperty changed:', newValue); } }

在这个示例中,MyDirective是一个自定义指令,它具有一个名为myInput的输入属性,并实现了OnChanges接口。在ngOnChanges方法中,我们输出了属性的变化。

MyComponent是一个使用了自定义指令的组件。它有一个名为myProperty的属性,并将其绑定到了自定义指令的输入属性上。在myPropertyChange方法中,我们输出了属性的变化。

通过在构造函数中使用bind方法将lambda表达式绑定到正确的上下文,我们确保了directive的ngOnChanges方法能够正常工作。

请注意,这个解决方法也适用于Angular 7及更高版本。

相关内容

热门资讯

透视策略!来玩app破解(透视... 透视策略!来玩app破解(透视)pokermaster修改器(辅助)其实真的有app(哔哩哔哩)一、...
透视妙计!pokernow辅助... 您好,pokernow辅助控制这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302...
透视方案!hh poker插件... 透视方案!hh poker插件下载(HHpoker开挂)一贯真的有辅助app(哔哩哔哩)1、让任何用...
透视方式!竞技联盟辅助(透视)... 透视方式!竞技联盟辅助(透视)红龙poker辅助器免费观看(辅助)一贯是真的有攻略(哔哩哔哩)1、许...
透视要领!aapoker安装包... 透视要领!aapoker安装包怎么使用(德普之星下载)好像是真的有辅助软件(哔哩哔哩)aapoker...
透视要领!wepoker有没有... 透视要领!wepoker有没有辅助(AApoker下载)原来真的有辅助软件(哔哩哔哩)1、进入游戏-...
透视模块!aapoker透视方... 透视模块!aapoker透视方法(AApoker设置)果然有辅助神器(哔哩哔哩)1、下载好aapok...
透视法门!德州局脚本(德普之星... 透视法门!德州局脚本(德普之星私人局)好像真的是有辅助技巧(哔哩哔哩)1、完成德州局脚本有辅助插件,...
透视方针!智星菠萝透视(透视)... 透视方针!智星菠萝透视(透视)拱趴大菠萝怎么开挂(辅助)总是是真的有脚本(哔哩哔哩)透视方针!智星菠...
透视诀窍!佛手大菠萝有挂吗(透... 透视诀窍!佛手大菠萝有挂吗(透视)poker master辅助(辅助)好像是有软件(哔哩哔哩)1、进...