angular - 具有属性选择器的组件上的主机绑定不起作用
问题描述
目标:我想使用@Hostbinding从指令中自定义组件属性。属性名称已禁用。
问题:我收到此错误:
无法绑定到 'disabled',因为它不是 'sd-form' 的已知属性。\n1. 如果 'sd-form' 是一个 Angular 组件并且它具有 'disabled' 输入,则验证它是该模块的一部分。\n2. 如果“sd-form”是一个 Web 组件,则将“CUSTOM_ELEMENTS_SCHEMA”添加到该组件的“@NgModule.schemas”以禁止显示此消息。\n3. 要允许任何属性,请将“NO_ERRORS_SCHEMA”添加到此组件的“@NgModule.schemas”。已识别,但它是使用该指令的组件的一部分。
这是我的指令
@Directive({
selector: '[sixDisableNotAutorized]'
})
export class NotAutorizedDisableDirective extends RxjsComponent implements AfterViewChecked {
@Input('sixDisableNotAutorized')
autority: AuthorityEnum;
@HostBinding('disabled')
disabledState: boolean;
...
}
这是我的组件:
@Component({
selector: 'sd-form[radio-group], sd-form[radio-group-inline]',
templateUrl: './form-radio-group.component.html',
styleUrls: [
'./form-radio-group.component.scss',
],
encapsulation: ViewEncapsulation.None
})
export class SdFormRadioGroupComponent extends CustomValueAccessorComponent<ISdFormComponentItem> implements ControlValueAccessor {
currentValue: ISdFormComponentItem;
@HostBinding('class.six__is-disabled')
@Input()
disabled = false;
...
}
这是dom:
<sd-form radio-group
formControlName="myForm"
idField="myForm"
nameField="myForm"
[sixDisableNotAutorized]="'EDITION_BI_CHANTIER'">
</sd-form>
解决方案
更改@HostBinding('disabled')
为@HostBinding('attr.disabled')
推荐阅读
- python - 试图弄清楚如何使 python 乌龟图形的画布更小,但它不能正常工作
- python - Python 错误“最多输入 1 个参数,得到 3 个”是什么意思?
- laravel - 如何在 laravel 单元测试中获取响应数据
- python - UPDATE 无法更新 sqlite3 数据库中的属性
- java - 类型参数 T 扩展类不允许在方法中将类用作 T 参数
- python - 在将 kwargs 附加到列表 python 时获取 KeyError
- c# - 使用 Visual Studio 2017 创建 cs2php 编译器
- python - 如何在 Python 中将嵌套数组转换为多维数组(张量)
- c++ - 执行 operator>> 时出错:C++ no operator 与这些操作数匹配,操作数类型为:std::istream >> const double error
- python - Pdoc 将类信息添加到每个枚举变量