gpt4 book ai didi

typescript - Angular 2 - 指令如何向主机提供数据?

转载 作者:太空狗 更新时间:2023-10-29 18:27:08 25 4
gpt4 key购买 nike

我有一个我认为应该在 Angular 2 中解决的非常简单的问题,但我就是找不到正确的语法。

我的目标是执行以下操作的指令:

  1. 接受任意数据作为值。例如,[my-data]="[1,2,3,4,5]"
  2. 处理这个变化。例如。 onChange() { 返回 this.data.length = 55;
  3. 将此数据发送到主机,并绑定(bind)到主机属性。

我在 1) 上还不错,但在 2) 和 3) 上有点迷茫。到目前为止,我有类似的东西:

@Directive({
selector: ['ap-data'],
host: {
'(change)': 'onChange()'
}
})
export class DataDirective {

@Input('ap-data') data: any;

@HostBinding('attr.ap-data') get dataSet() {
return processData(this.data);
}

...

}

@Component({
selector: 'myComponent',
directive: [DataDirective],
template: `
<div [ap-data]="[1,2,3,4,5]"></div>
`
})
export class MyComponent {

public data: any[];

public dataSet: ProcessedDataType;

...

}

最佳答案

对于主机绑定(bind)的指令,使用 EventEmitter:

@Output('ap-data-change') apDataChange: EventEmitter = new EventEmitter() 

onChange() {
...
this.apDataChange.next(someValue);
}

<div [ap-data]="[1,2,3,4,5]" (ap-data-change)=hostField=event$></div>

关于typescript - Angular 2 - 指令如何向主机提供数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35262514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com