我不明白为什么每次我应用此指令的输入元素的值发生更改时,都不会触发下面我的指令的setter中的alert()。 它只会在我刷新页面时第一次触发。
我认为,由于value属性已绑定,每次敲击输入中的键时都会触发setter。它没有。 此外,我尝试使用按钮以编程方式更改输入的值。它也不会解雇制定者。
任何人都可以如此温柔地告诉我我的错误吗?
我的app.agcomponent.ts如下:
import { Component } from '@angular/core';
@Component({
selector: 'ag-component'
, template:
`
<input type="text" id="myinput" value="Mickey" ag-directive>
<button (click)="onButtonValueClick($event)">Value</button>
`
})
export class AGComponent {
onButtonValueClick(event) {
document.getElementById("myinput").value ="Pluto";
}
}
我的app.agdirective.ts如下:
import { Directive } from '@angular/core';
import { ElementRef } from '@angular/core';
@Directive({
selector: '[ag-directive]'
, inputs: ['value: value']
})
export class AGDirective {
set value(pValue) {
alert(pValue);
}
}
答案 0 :(得分:0)
您在声明中缺少@Input()。
export class AGDirective {
@Input()
set value(pValue) {
alert(pValue);
}
}