2017-02-25 96 views
7

我有以下的HTML但我得到了異常。如何解決它?得到插值({{}})其中表達預期

Parser Error: Got interpolation ({{}}) where expression was expected at column 48 in [!(editForm.controls.field_item_exportExpression_{{i}}?.dirty && editForm.controls.field_item_exportExpression_{{i}}?.invalid)]

<div class="form-group"> 
    <label class="form-control-label" for="field_exportExpression">exportExpression</label> 
    <input class="form-control" type="text" id="field_item_exportExpression_{{i}}" name="item_exportExpression_{{i}}" [(ngModel)]="datatype.items[i].exportExpression" required> 
    <div [hidden]="!(editForm.controls.field_item_exportExpression_{{i}}?.dirty && editForm.controls.field_item_exportExpression_{{i}}?.invalid)"> 
    <small class="form-text text-danger" [hidden]="!editForm.controls.field_item_exportExpression_{{i}}?.errors?.required" dpTranslate="dataconfiguration.validation.required"> This field is 
          required. </small> 
</div> 
</div> 

下是行不通的。說不想要的標記[找到。

[hidden]="!editForm.controls.['item_exportExpression_' + i]?.errors?.required 

以下不抱怨[但抱怨Cannot read property '0' of undefined

[hidden]="!editForm.controls.item_exportExpression_[ i]?.errors?.required 
+0

的可能的複製[分析器錯誤:GOT插值({{}}),其中預期表達(http://stackoverflow.com/questions/40203279/parser-error-got -interpolation-where-expression-was-expected) – jonrsharpe

+2

或關於同一個錯誤信息的其他幾個問題 - 給予你的代表令人失望的缺乏研究。 – jonrsharpe

+0

@jonrsharpe我看到這個帖子了,他有$ index,答案是{{$ index}}。我的情況,我有我,我把{{i}}劑量的工作。 –

回答

5

模板一起去

<div [hidden]="!checkIfInvalid(i, 'item_exportExpression_')"> 
          <small class="form-text text-danger" [hidden]="isRequiredError(i, 'item_exportExpression_')" dpTranslate="dataconfiguration.validation.required"> This field is 
           required. </small> 
    </div> 

部件

checkIfInvalid(index: number, field: string): boolean { 
     const control = this.getControl(index, field); 
     if (control && control.dirty && !control.valid) { 
      return true; 
     } 
     return false; 
    } 

    isRequiredError(index: number, field?: string): boolean { 
     const control = this.getControl(index, field); 
     if (control && control.getError("required")) { 
      return true; 
     } 
     return false; 
    } 
24

{{}}從未[prop]="..."(event)="..."

<small class="form-text text-danger" 
     [hidden]="!editForm.controls.['field_item_exportExpression_' + i]?.errors?.required" dpTranslate="dataconfiguration.validation.required"> This field is 
         required. 
</small>