首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用指令在其他模块使用该属性之前添加属性?

如何使用指令在其他模块使用该属性之前添加属性?
EN

Stack Overflow用户
提问于 2019-02-19 07:21:03
回答 1查看 852关注 0票数 0

我增加了一个模块,让我在输入上设置一个掩码。

该模块与属性'textMask‘一起使用掩码和选项的值(例如:[textMask]="{mask: dateMask, placeholderChar: '\u2000', keepCharPositions: true}"和法语日期掩码后面的代码:public dateMask = [/[0-3]/, /\d/, "/", /[0-1]/, /\d/, "/", /[12]/, /[09]/, /\d/, /\d/]; )。

与其将这个掩码添加到每个日期输入和每个组件后面的代码中,我更愿意做一个指令,将属性添加到每个日期输入中。

所以,我做了这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { Directive, ElementRef, Renderer } from '@angular/core';

@Directive({
  selector: 'input[matDatepicker]'
})
export class DateMaskDirective {
  constructor(private el: ElementRef<HTMLElement>, private renderer: Renderer) {
    this.renderer.setElementAttribute(this.el.nativeElement, '[textMask]', '{ mask: [/[0-3]/, /\d/, "/", /[0-1]/, /\d/, "/", /[12]/, /[09]/, /\d/, /\d/], placeholderChar: "\u2000", keepCharPositions: true }');
  }
}

问题是,即使添加了属性,掩码模块也不会对其进行解释。这是优先考虑的问题吗?我怎么才能解决呢?

链接到掩码模块:https://github.com/text-mask/text-mask/tree/master/angular2#readme

编辑

我尝试了Daniel Hilgarth的解决方案(派生掩码指令)如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { Directive, ElementRef, Renderer2 } from '@angular/core';
import { MaskedInputDirective, TextMaskConfig } from 'angular2-text-mask';

@Directive({
  selector: 'input[matDatepicker]'
})
export class DateMaskDirective extends MaskedInputDirective {
  public textMaskConfig: TextMaskConfig = {
    mask: [/[0-3]/, /\d/, "/", /[0-1]/, /\d/, "/", /[12]/, /[09]/, /\d/, /\d/],
    guide: true,
    placeholderChar: '\u2000',
    keepCharPositions: true,
    showMask: true
  }

  constructor(private el: ElementRef<any>, private renderer: Renderer2, _compositionMode: boolean) {
    super(renderer, el, _compositionMode);
  }
}

但我得到了以下角度误差:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ERROR Error: StaticInjectorError(AppModule)[DateMaskDirective -> Boolean]:
StaticInjectorError(Platform: core)[DateMaskDirective -> Boolean]:
NullInjectorError: No provider for Boolean!
    at NullInjector.push../ node_modules /@angular/core/fesm5 / core.js.NullInjector.get(core.js: 691)
    at resolveToken(core.js: 928)
    at tryResolveToken(core.js: 872)
    at StaticInjector.push../ node_modules /@angular/core/fesm5 / core.js.StaticInjector.get(core.js: 769)
    at resolveToken(core.js: 928)
    at tryResolveToken(core.js: 872)
    at StaticInjector.push../ node_modules /@angular/core/fesm5 / core.js.StaticInjector.get(core.js: 769)
    at resolveNgModuleDep(core.js: 17435)
    at NgModuleRef_.push../ node_modules /@angular/core/fesm5 / core.js.NgModuleRef_.get(core.js: 18124)
    at resolveDep(core.js: 18495)
EN

回答 1

Stack Overflow用户

发布于 2019-02-19 07:23:32

那不是属性。这是它自己的指令。一个可能的解决方案是从它们的指令中派生出您的指令。

尝试这样的方法(未经测试,但重要的是布尔构造函数参数上的装饰器):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { Directive, ElementRef, Renderer2 } from '@angular/core';
import { MaskedInputDirective, TextMaskConfig } from 'angular2-text-mask';

@Directive({
  selector: 'input[matDatepicker]'
})
export class DateMaskDirective extends MaskedInputDirective {
  public textMaskConfig: TextMaskConfig = {
    mask: [/[0-3]/, /\d/, "/", /[0-1]/, /\d/, "/", /[12]/, /[09]/, /\d/, /\d/],
    guide: true,
    placeholderChar: '\u2000',
    keepCharPositions: true,
    showMask: true
  }

  constructor(private el: ElementRef<any>, private renderer: Renderer2, @Optional() @Inject(COMPOSITION_BUFFER_MODE) _compositionMode: boolean) {
    super(renderer, el, _compositionMode);
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54769604

复制
相关文章
[UWP]依赖属性2:使用依赖属性
以上代码为一个相对完成的依赖属性例子(还有一些功能比较少用就不写出了),从这段代码可以看出,自定义依赖属性的步骤如下:
dino.c
2019/01/18
1.4K0
使用文件和目录属性和属性
%Library.File类还提供了许多类方法,可以使用这些方法来获取有关文件和目录的信息,或者查看或设置它们的属性和属性。
用户7741497
2022/07/05
6950
CA1024:在适用处使用属性
在大多数情况下,属性表示数据,方法执行操作。 访问属性的方式类似于访问字段,这使得它们更易于使用。 如果一个方法具备以下条件之一,则该方法可能很适合成为属性:
用户4268038
2022/01/10
4490
【说站】Python类属性如何使用
以上就是Python类属性的使用,希望对大家有所帮助。更多Python学习指路:python基础教程
很酷的站长
2022/11/23
6120
CardView使用及属性
app:cardCornerRadius这是设置圆角大小 app:cardElevation这是设置z轴的阴影 app:cardMaxElevation这是设置z轴的最大高度值 app:cardUseCompatPadding是否使用CompatPadding app:cardPreventCornerOverlap是否使用PreventCornerOverlap app:contentPaddingLeft 设置内容的左padding app:contentPaddingTop 设置内容的上padding app:contentPaddingRight 设置内容的右padding app:contentPaddingBottom 设置内容的底padding
yechaoa
2022/06/10
6850
CardView使用及属性
其他html元素和属性
disabled:标识元素不可用,就是用户不可互动,比如 button 的 disabled,就是按钮不能点击
鹤川
2023/03/21
7350
给js对象添加属性和方法属性_js给json对象添加属性
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/01
20.7K0
使用jQuery设置disabled属性与移除disabled属性
Readonly只针对input(text/ password)和textarea有效,而disabled对于所有的表单元素都有效,包括select,radio, checkbox, button等。
山河木马
2019/03/05
5K0
如何使用MLSQL中的帮助指令学习模块的使用
MLSQL 已经实现了文章中描述的功能 如何实现语法的自解释(MLSQL易用性设计有感) 。
用户2936994
2018/09/29
9440
如何使用MLSQL中的帮助指令学习模块的使用
css hover改变其他class属性
css鼠标效果改变其他样式效果如图:图片代码参考.zmki_box_li li{ background-color: #F2F5FB; padding: 8px 15px!important; border-radius: 10px; transition: background-color 0.3s,color 0.3s;}.zmki_box_li li:hover{ background-color: #38b781; } .zmki_box_li li:hover i{
AlexTao
2021/03/08
3.7K0
jquery data属性的使用
var func=function(){console.log("test")}; $("div").data("test",func); $("div").data("test")(); 输出结果是test 注意:data方法是jquery中的方法不是原生js里面的方法 js原生的dataset方法 var func=function(){console.log("test")}; var a = document.createElement("div"); a.dataset.test=func; a.
windseek
2018/05/15
1.2K0
使用模式构建:属性模式
原文:Daniel Coupal and Ken W. Alger 译者:牟天磊
MongoDB中文社区
2019/03/21
7390
使用模式构建:属性模式
Java双属性枚举使用
最近有小伙伴问我,双枚举类该怎么写,还得包括根据key取值方法。 于是就手写一个案例如下:
执笔记忆的空白
2020/12/24
1.2K0
使用模式构建:属性模式
原文:Daniel Coupal and Ken W. Alger 译者:牟天磊
MongoDB中文社区
2019/04/22
9210
使用模式构建:属性模式
链接标签使用及属性
如 <a href=”http://fireinsect.top”>小虫的个人博客</a>
摸鱼的G
2023/02/22
1.2K0
链接标签使用及属性
使用copy声明NSString属性
声明一个NSString属性使用copy要优于使用strong。这同样适用于遵守NSCoding协议的不可变类(immutable class),如NSNumber、NSArray、NSSet等。上面提到的这些类都有一个可变(mutable)的版本。选择使用copy的理由是,NSString属性可能被传入一个NSString实例,也可能是一个NSMutableString实例。当传入了一个NSMutableString实例时,字符串的值可能会在背后悄悄变化。来瞧瞧这个例子:
Jace
2018/08/01
3600
低代码平台的属性面板该如何设计?
在之前的如何设计实现 H5 营销页面搭建系统中,我对前端目前的低代码平台的设计中的一些问题做了一些阐述,但并没有深入到很细节的地方去展开探讨。接下来,我会对其中的一些实现细节通过几篇文章来依次分享。
前端森林
2022/04/28
1.3K0
低代码平台的属性面板该如何设计?
Java使用JAXB对XML设置属性和属性值
复杂点的原因是名称带有冒号,属性也是,没有操作过JAXB是不容易上手,我来记录下实体的代码。
高久峰
2023/10/12
5760
Angular 自定义属性指令
本文将使用 UltimateAngular/angular-pro-src 中的示例,来一步步介绍自定义属性指令的相关知识。在正式开发前,我们可以先看一下,最终效果 Stackblitz - Custom-Attribute-Directive。
阿宝哥
2019/11/05
2.1K0
点击加载更多

相似问题

c#在使用属性之前检查该属性是否存在

10

在xdocument中将属性添加到其他属性之前

13

在模块中定义之前使用的属性

23

在设置属性之前加载指令

26

如何在属性存在之前引用该属性

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文