2017-08-04 7 views
2

コードが正常に機能していますが、把握できないTslintエラーが発生しています。この設定はAngular 1を使用していましたが、現在はAngular Cliを使用してアプリケーションを4に変換しています。角4:オブジェクトから正規表現パターンを呼び出す

角:識別子 'vin'が定義されていません。オブジェクトにはそのような が含まれていません。

以下に示すオブジェクトに格納されているRegexパターンを共有しています。それは私のコンポーネントにインポートされ、[pattern]="patterns.KEY"を使って呼び出されます。

パターンは正常に動作するはずですが、検証は機能していますが、入力に添付すると上記のエラーが発生します。 patternsにデータ型がないためですか?もしそうなら、それはどのように定義されますか?

エラーはテンプレートファイルでのみスローされます。コンポーネントファイルとパターンファイルには、検証エラーはありません。

テンプレートコード:

<div class="form-group"> 
    <label for="vin">VIN</label> 
    <input type="text" class="form-control" id="vin" placeholder="VIN" 
      minlength="8" maxlength="17" required [pattern]="patterns.vin" 
      [(ngModel)]="model.Vin" name="Vin" #Vin="ngModel"> 
    </div> 

コンポーネントコード:

export class COMPONENT_NAME implements OnInit { 
    patterns = Patterns; 
} 

パターンファイル:

export const Patterns: Object = { 
    vin: /^[\w\d]+$/i, 
}; 
+0

[このplunk](https://plnkr.co/edit/Qx9SFvsMVkOthmH53vGZ?p=preview)で私のために働いていますが、ファイルから正しくインポートしましたか?編集:plunkは入力で更新されました: 'a'で始まり、他のすべての条件は – 0mpurdy

+0

@ 0mpurdyと一致する必要があります。テンプレートファイルでlintエラーが発生しますが、うまく描画されます。厄介な問題ではなく、壊れた問題ではありません。 – austinthedeveloper

+0

申し訳ありませんが、私はそれがリントの問題であると理解していませんでした。それは 'Object'とタイプしないでください。 – 0mpurdy

答えて

1

がANSWが判明私はかなりシンプルでした。 patternsを定義する必要はなく値がngOnInit()内に設定する必要が:

export class COMPONENT_NAME implements OnInit { 
    patterns; 
    ngOnInit() { 
    this.patterns = Patterns; 
    } 
} 

これは私が見ていたTslintの問題を削除します。