gpt4 book ai didi

Angular 5 通过组件传递 ngModel

转载 作者:行者123 更新时间:2023-12-05 01:00:24 25 4
gpt4 key购买 nike

我创建了一个简单的组件,它包装了 bootstrap 的 typeahead Controller ,因此它可以按照我想要的应用程序方式进行配置。该组件有一个公共(public)变量 selectedWorker,它是 typeahead 中的 ngModel

所以现在,当我在其他地方使用这个组件时,我想做这样的事情:

<app-worker-lookup [(ngModel)]="foo"></app-worker-lookup>

然后将调用者的 foo 变量绑定(bind)到具有选定值的查找组件的公共(public)变量。我不确定如何实现。

最佳答案

为了可以在您的组件中使用 ngModel,您的类必须实现 ControlValueAccesor 并将组件添加到提供 token

组件

    @Component({
selector: 'component',
templateUrl: '../component.html',
styleUrls: ['../component.scss'],
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => Component),
multi: true
}
]
})
export class Component implements ControlValueAccessor {

//
// Now add ngModel property binding
@Input() ngModel : NgModel;

....

//
// ControlValueAccessor implementation
writeValue(value:any) {
this.value = value;
}

registerOnChange(fn) {
this.propagateChange = fn;
}

registerOnTouched(fn){
}

private propagateChange = (_:any) => {};
}

关于Angular 5 通过组件传递 ngModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50396335/

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