AngularCli - 无法绑定到' textMask'在测试期间

时间:2018-04-25 03:52:49

标签: angular angular-cli karma-jasmine text-mask

我使用textMask节点模块格式化表单的输入标记。我遵循了Git存储库中的所有指令,模块完美地完成了。但是当我尝试运行组件测试时,它会说:Error: Template parse errors: Can't bind to 'textMask' since isn't a known property.。为什么我有这个问题?这是我的HTML模板:

 <input [textMask]="{mask: cpfMask}" type="text" id="inputCpf" required pattern="^[0-9]{3}\.[0-9]{3}\.[0-9]{3}\-[0-9]{2}$" name="inputCpf" [(ngModel)]="user.identification.value" #inputCpf="ngModel">

这是我的 user.component.ts

@Component({
  selector: 'app-user',
  templateUrl: './user.component.html',
  styleUrls: ['./user.component.css'],
  providers: [RegisterUserService, TokenManagerService]
})
export class UserComponent implements OnInit {

  private user: User;
  private error: string;
  private id: string;
  private credential: Credential;
  public cpfMask = [/\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, '-', /\d/, /\d/];

这是我的 app.module.ts:

import { TextMaskModule } from 'angular2-text-mask';
@NgModule({
  imports: [
    BrowserModule,
    HttpClientModule,
    HttpModule,
    FormsModule,
    TextMaskModule,
    ...

我已经访问了SO中讨论此问题的其他几个主题,但他们的解决方案并没有解决我的问题。

主题1:text-mask is not working for angular 2

主题2:Can't bind to 'x' since it isn't a known property of 'input' Angular 2

3 个答案:

答案 0 :(得分:1)

我的看法是as in this guide,这是一个配置不当的测试问题。您希望根据能够使用外部指令来配置您的测试环境。

答案 1 :(得分:0)

您必须导入模块TextMask。用我的方法工作。

import { TextMaskModule } from 'angular2-text-mask';

/../

imports: [ ... 

  TextMaskModule,
]

答案 2 :(得分:0)

即使在 TestBed 中导入模块时,我也遇到了这个问题。后来我注意到这个问题只在本地重现,但在 CI 上通过了测试。要在本地解决此问题,您需要再次删除并安装 node_modules