将自定义组件的id属性应用于内部输入元素

科斯塔丁·曼杜洛夫(Kostadin Mandulov)

我创建了一个自定义Angular组件,它基本上是带有某些属性的输入元素的包装。我希望当单击带有for属性的标签元素(指向自定义组件id属性)时,使此内部输入元素集中显示

<label for="some-id">Label text</label>
<my-custom-element id="some-id"></my-custom-element>
@Component({
  selector: 'my-custom-element',
  template: '<input type="text" />'
})

是否可以将id属性及其值移动到内部元素(例如,输入元素)?

科斯塔丁·曼杜洛夫(Kostadin Mandulov)

我已经设法实现了自己想要的。

我已将以下代码添加到MyCustomElementComponent中:

@Input() id?: string = ''

constructor(private _renderer: Renderer2, private _elementRef: ElementRef) { ... }

ngAfterViewInit() {
    this._renderer.removeAttribute(this._elementRef.nativeElement, 'id')
}

当然,模板变为:

<input type="text" [id]="id" />

现在该组件可以使用:

<my-custom-element id="some-id-literal"></my-custom-element>
<my-custom-element id="{{someIdVar}}"></my-custom-element>
<my-custom-element [id]="'some-id-literal'"></my-custom-element>
<my-custom-element [id]="someIdVar"></my-custom-element>

要注意的一件事是,即使从自定义元素中删除id属性第二种情况仍保留了绑定-更改someIdVar将更新自定义元素的id属性的值。前两个方案没有被覆盖mast3rd3mon原来的答案,因为ID属性仍然是自定义元素上了。他更新后的答案使用了非标准的passId属性而不是id

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何仅将自定义属性应用于元素?

如何将自定义材质设计主题应用于Bootstrap组件

如何将自定义CSS应用于ionic 4组件?

无法将自定义类应用于汉堡反应组件

将自定义主题应用于Odoo应用

将自定义样式应用于内部Chrome页面

Ionic 5-如何将自定义样式应用于离子输入

如何将自定义函数应用于并行配对数组的明智元素?

将自定义属性应用于“代码优先实体”框架对象

如何将自定义转换器应用于YamlDotNet中的属性

将自定义功能应用于熊猫df

将自定义函数应用于数据框

将自定义函数应用于数据框

将自定义函数应用于numpy矩阵

将自定义累积功能应用于熊猫

如何将自定义主题应用于Google自定义搜索?

将自定义函数应用于 DF 列表,将另一个列表作为输入 - R

在next.js中,如何将自定义CSS类和引导类同时应用于元素

如何将自定义标量函数逐元素应用于math.js中的矩阵?

将自定义模型活页夹应用于asp.net核心中的对象属性

如何清除应用于元素的自定义样式?

如何将自定义字体应用于Android应用中的每个TextView

样式仅在具有布局属性的元素内应用于自定义聚合物元素的样式

如何将自定义排序应用于多索引列

如何将自定义比较器应用于R数据帧?

如何将自定义滚动功能应用于pandas groupby?

如何将自定义函数应用于数据框的每一列

将自定义函数应用于 Data.Table

将自定义函数应用于pandas Series会产生AttributeError