我们的组织正在从AngularJS迁移到Angular。在角度世界中,我们有一个attirbute指令,我们用它来制作输入渲染只是文本,如果我们在"只读"模式。
假设myfield
是"我的值",那么
<input my-readonly="true" type="text ng-model="myfield"></input>
只会渲染
my value
而不是输入元素。
此外,它足够聪明,可根据类型输入类型应用特定格式。所以日期,数字,文本和电话都将按照我们的风格进行格式化。
我试图在Angular中复制此功能,但没有任何头脑。理想情况下,它将如下工作
<input *myReadonly="true" type="text ng-model="myfield"></input>
最初,我尝试将我的选择器设置为input[type=text][myReadonly]
但是,随着模板扩展的方式,DOM(或AST)实际上看起来并非如此。其次,我查看了API,看看是否有人在决定渲染之前查看主机,但TemplateRef
似乎没有任何反射属性。
最后,如果有办法动态找出渲染方式,我还需要访问当前值,即ngModel
。所以,这可能根本不适用于我们。
我正在尝试做什么?
答案 0 :(得分:0)
由于没有人回答我会尝试。看起来非常hacky。