角度2 - 检测属性@Input的变化
Angular2 - Detect Changes of Attribute @Input
我有一个简单的属性指令mask
,带有@Input() mask:string
我希望能够检测并响应mask
绑定上的更改我可以以某种方式使用ngOnChanges
,但我觉得这就像用大画笔画问题
指令示例/简化代码:
@Directive({
selector: 'mask'
})
export class MaskDirective implements AfterViewInit {
@Input() mask: string;
constructor(public el: ElementRef) {};
ngAfterViewInit() {
$(this.el.nativeElement).mask(this.mask);
}
}
用法:
<input type='text' [mask]='someBinding'>
当someBinding
的值发生变化时,如何执行一些代码,而不依赖ngChanges
?
你可以对mask
属性使用 setter 方法,而不是更广泛的ngOnChanges
:
@Directive({
selector: 'mask'
})
export class MaskDirective implements AfterViewInit {
@Input set mask(newValue: string) {
$(this.el.nativeElement).mask(newValue);
}
constructor(public el: ElementRef) {};
}
Setter 会更有效率,因为它只与此属性相关。
相关文章:
- 正在将base64 jpeg从input-type=file上传到服务器
- 单击页面上的链接后高度发生变化
- React redux初始化功能,无论状态变化如何
- 如何使用input-tage上传图片并查看在laravel中上传的文件预览
- 角度ng变化或ng点击选择can'不起作用
- 每个选择器的Jquery css颜色都在变化,但字体大小却没有变化
- JS幻灯片与CSS背景颜色变化
- $(input[]).仅在firefox中出现每个抛出语法错误
- 重新加载页面时Javascript变量发生变化
- 如何获得Bootstrap Datepicker的年和月,因为它在变化
- 我如何在INPUT TEXT中使用这个Javascript和jQuery
- 如何用jquery替换字符串中可能变化的字符
- 检测数据的变化
- 如何检测和打印变化变量LESS
- 当文本不断变化时,如何避免在按钮内移动文本
- 如何使用keyup或input进行操作?javascript(jQuery)
- 当数据库中的某些内容发生变化时调用HTTP方法Meteor.js
- jQuery将侦听器的大小调整为只触发宽度的变化
- 根据元素高度和宽度的百分比变化增加或减少字体大小
- 角度2 - 检测属性@Input的变化