当前位置: 首页 > 知识库问答 >
问题:

@Input() 上的触发函数已更改

傅朗
2023-03-14

我有一个父组件,在parent.component.html中有以下代码:

<app-child [idElement]=(idElement)></app-child>

在子组件中,我有如下输入参数

@Input() idElement : number;

还有一个名为

getSpecs()

当父输入被修改时,我希望子输入执行< code>getSpecs()函数。这可能吗?

共有3个答案

翟承志
2023-03-14

你可以试试这些

>

  • 子组件中的角度核心包导入OnChanges

    从“@角/核心”导入{Component, Input, OnChange, SimpleChange};

    像这样实现你的子类

    导出类“你的组件”实现“更改”

    创建OnChange方法,如

    ngOnChanges(changes:SimpleChanges){
      console.log(changes.your input property name);
     // implement your logic here  
    }
    

    每当您在父组件中发生更改时,它都会影响子组件

  • 孙才捷
    2023-03-14

    还有另一个没有“更改”的选项

    @Component({
        selector: 'app-child',
        template: '<div></div>'
    })
    export class AppChildComponent {
        private _idElement: number;
    
        get idElement(): number {
            return this._idElement;
        }
    
        @Input('idElement') set idElement(value: number) {
            if (value) {
                this._idElement = value;
                this.getSpecs();
            }
        }
    }
    

    希望这有帮助!:)

    汤英豪
    2023-03-14

    为此,您必须使用Angular生命周期挂钩ngOnChanges

    在你的情况下,它会是这样的:

    js prettyprint-override">ngOnChanges(changes: SimpleChanges) {
        if (changes['idElement']) {
            // Do your logic here
            this.getSpecs()
        }
    }
    

    文档在这里。

     类似资料:
    • 我有一个azure函数,由上传到特定容器的任何新blob(图像)触发。这些图像然后被存储在这个blob存储容器中。现在我改变了我的函数并重新部署它,我希望我的azure函数能够在所有这些(已经存储的)图像上重新运行。由于该功能是blob触发的,现在我只是手动重新上传存储容器中的相同图像,但随着图像数据的增加,这样做变得越来越不可行。 函数中的Blob触发器如下所示: 它的解决方案是什么? 谢谢你。

    • 我有两个blob触发器,我想触发。一个有效,一个无效! 我使用Azure Storage Explorer来确保blob被上传到每个blob,< code>scanFiles永远不会触发,而< code>scanExports似乎总是会触发。 问题:什么会导致某些blob无法触发Azure函数?

    • 我目前正在使用discord.py开发一个不和谐机器人。我的问题是,我怎么能触发一个功能,当我提到机器人。我在考虑一个if语句,但我不知道,我需要调用哪些变量。 代码的其余部分工作正常。如果我能得到一个代码片段就好了:)

    • 如果你使用blob存储触发器阅读Azure WebJobs上的留档,它们会提到这不是很可靠: WebJobs SDK扫描日志文件以查看新的或更改的blob。这个过程不是实时的;在创建blob后的几分钟或更长时间内,函数可能不会被触发。此外,存储日志是在“尽力而为”的基础上创建的;无法保证所有事件都将被捕获。在某些情况下,日志可能会丢失。如果您的应用程序无法接受blob触发器的速度和可靠性限制,建议

    • 我正在编写一些代码,使用Cosmos作为我的存储来实现事件源。我的初始文档成功写入集合。然后,我设置了一个Azure函数,该函数在该集合的提要发生变化时触发,并将项目复制到另一个集合。 我的问题是,虽然如果我在本地调试函数应用程序,这一切都可以正常工作(更改通过并无问题地处理),但函数在作为函数应用程序发布后不会触发。该函数存在,但总执行计数始终为0。就像该函数没有在计时器上运行并检查提要。我的函

    • 配置报警策略的时候open-falcon支持多种报警触发函数,比如all(#3) diff(#10)等等。 这些#后面的数字表示的是最新的历史点,比如#3代表的是最新的三个点。该数字默认不能大于10,大于10将当作10处理,即只计算最新10个点的值。 说明:#后面的数字的最大值,即在 judge 内存中保留最近几个点,是支持自定义的,具体参考 book 中描述 ; 源码位置 => cfg.exam