【发布时间】:2017-04-24 14:10:12
【问题描述】:
当我从指令执行发射时,我试图改变一些值;
简化版:
HTML:
<div testDirective (onTouch)='test()'>
<p>{{test_value}}</p>
<a (click)='test()'>get data</a>
</div>
打字稿:
private test_value: string = '';
test() {
this.test_value='TEST';
alert('Value: ' + this.test_value);
}
指令:
@Directive({
selector: '[testDirective]',
host: {
'(document:touchend)': 'touchEnd($event)'
}
})
export class TestDirective {
@Output() onTouch: EventEmitter<any> = new EventEmitter();
touchEnd(e) {
this.onTouch.emit(null);
}
}
当我按下“获取数据”链接时,我得到了数据 + 一个警报“值:测试” 当我发出 onTouch 时,我没有收到任何数据 + 警报“值:测试”
谁知道这两种方法之间的区别是什么,以及为什么 Angular 在发射时不会检测到这种值的变化,但在点击时会检测到?
【问题讨论】:
标签: angular typescript directive eventemitter