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

检测更改@角度输入绑定

吴安和
2023-03-14

我需要检测@Input绑定角度中的值变化,并在值更改时执行函数

@Component({
  selector: 'my-comp',
  ...
})
...
@Input() myValue

//detect myValue changes

<my-comp [myValue]= "val"></my-comp>

val更改时,我需要执行一些代码组件类。

共有2个答案

魏翔
2023-03-14

您可以使用ngOnChangelifecycle钩子作为高级功能的角度。

js prettyprint-override">export class MyCoponent implements OnChanges{

@Input() myValue

ngOnChanges(changes:SimpleChange){

 //current value
 let currentVal= changes.myValue.currentValue
 // previouse value
 let prev = changes.previousValue
}

< code>ngOnChanges函数在< code>myValue发生任何变化时执行

濮景龙
2023-03-14

您可以在这里简单地使用< code>set,就像这样:

_myvalue: any;
@Input() set myValue(value: any) {
    ... // Your code goes here
    this._myvalue = value;
}

现在,每当您在模板中为myValue赋值时,都会调用setter并执行代码。

我希望这能有所帮助!

 类似资料:
  • 问题内容: 在事件上使用jquery时,仅当输入失去焦点时才会触发事件 就我而言,我需要在输入值更改后立即调用该服务(检查值是否有效)。我该怎么做? 问题答案: 更新为澄清和示例 方法1。事件 在现代浏览器中使用事件。当用户在任何时候将值从一个值更改为另一个值时,都将在用户键入文本字段,粘贴,撤消操作时触发此事件。 在jQuery中这样做 从jQuery 1.7开始,替换为: 方法2。事件 对于较

  • 问题内容: 我有以下表格: 我得到并在功能,但我没有得到并在功能。 我在哪里犯错? 隐藏输入的值正确。 问题答案: 隐藏表单字段不是Angular方式。您根本不需要隐藏字段,因为所有范围变量(不在表单中)都可以视为隐藏变量。 至于解决方案,在提交表单时,只需用’user’填充对象’record’: 附带说明,在调用函数时无需提及变量:

  • 我有一个角度组件,它有一个输入< code>Person 在这个组件的父组件中,如果我替换了作为子组件输入的对象,

  • 问题内容: 我是Protractor的新手。尽管缺少文档,但我仍然了解基本原理,但找不到解决此问题的方法。 给出以下代码: 我可以看到输入获取了要插入的文本,并且模型以相同的值更新,但是测试失败,原因是description.getText()返回’‘(空字符串)。 有没有其他方法可以在输入中捕获值? 提前致谢。 问题答案: 显然,Selenium WebDriver有一个怪癖。看这里 尝试: 注

  • 这将生成所需的输出,其中我的输入具有“super”占位符。然而,当我试图在另一个文件中重新创建它时,我得到了完全不同的结果和错误。 (代码段:只显示一个输入,因为其他输入都是相同的)

  • 当表单的任何输入被点击(或更改)时,提交表单的“AngularJS方式”是什么? 我很想使用jQuery并简单地执行,但它可能值得正确学习。 我曾尝试执行,但这里的错误是>范围内的