Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs Angular2-创建注入NgModel但不能与NgControl一起使用的掩码_Angularjs_Typescript_Angular_Masking - Fatal编程技术网

Angularjs Angular2-创建注入NgModel但不能与NgControl一起使用的掩码

Angularjs Angular2-创建注入NgModel但不能与NgControl一起使用的掩码,angularjs,typescript,angular,masking,Angularjs,Typescript,Angular,Masking,我试图通过注入NgModel在Angular2中创建掩码指令。但是,当指令放置在带有ngControl的标记中时,会引发异常: angular2.dev.js:23877异常:NgModel没有提供程序!(MaskDirective->NgModel) HTML: 这是普朗克: 注入NgControl不会授予对模型值的访问权限。建议的解决方案是什么 提前谢谢 @Inject(ContactService)在类型相同时是多余的ContactService我认为您应该将其实现为自定义值访问器,就像刚

我试图通过注入
NgModel
Angular2
中创建掩码指令。但是,当指令放置在带有
ngControl
的标记中时,会引发异常:

angular2.dev.js:23877异常:NgModel没有提供程序!(MaskDirective->NgModel)

HTML:

这是普朗克:

注入NgControl不会授予对模型值的访问权限。建议的解决方案是什么


提前谢谢

@Inject(ContactService)
在类型相同时是多余的
ContactService
我认为您应该将其实现为自定义值访问器,就像刚才提供的DefaultValueAccessor一样,非常感谢!如果您能将您的解决方案作为答案发布,那就太好了;-)我使用指令构建了一个
<input type="text" class="form-control" id="telephone" name="telephone" placeholder="123-456-7890" [(ngModel)]="contactInfo.telephone" required ngControl="telephone" #telephone="ngForm" mask-input="(***) ***-****" [modify]="contactInfo.telephone"/>
constructor(public model: NgModel, public ele: ElementRef, @Attribute("mask-input") maskPattern: string) {
    this.dividers = maskPattern.replace(/\*/g, "").split("");
    this.dividers.push("_");
    this.generatePattern(maskPattern);   
    this.numOfChar = 0;
}