Angle2のui-bootstrapの代わりにng-bootstrapを使用しています。
私のhtmlは次のとおりです。
<ul class="list-inline">
<li class="tag" ngb-dropdown auto-close="outsideClick"
*ngFor="let item of ['Elastic Search','Database Theory','CVS'];
let $index=index;"
[ngClass]="{'default-tag': $index==0, 'matched-tag': $index==1, 'unmatched-tag': $index==2 }">
<a href ngb-dropdown-toggle id="desiredSkill{{$index}}">
<i class="bi_interface-tick following"></i> {{item}} <i class="bi_interface-more tag-menu-icon"></i>
</a>
<ul class="dropdown-menu tag-menu" ngb-dropdown-menu [aria-labelledby]="desiredSkill{{$index}}">
<li><a href>Follow Skill</a></li>
<li><a href>Related Jobs</a></li>
</ul>
</li>
</ul>
しかし、アプリを実行すると、次のエラーが表示されます。
main.browser.ts:25エラー:テンプレート解析エラー:パーサーエラー:JobDescription @ 174:77( "] [の[desiredSkill {{$ index}}]]の列12で式が予期されていた補間({{}})を取得しましたaria-labelledby] = "desiredSkill {{$ index}}">
- "):JobDescription @ 174:77パーサーエラー:JobDescription @ 174:77の[desiredSkill {{$ index}}]の列13に予期しないトークン '{'があります("
[aria-labelledby] = "desiredSkill {{$ index}}">- "):JobDescription @ 174:77 'aria'の既知のプロパティではないため、 'aria-labelledby'にバインドできません。("] [aria-labelledby] = "desiredSkill {{$ index}}">
- "):JobDescription @ 174:77パーサーエラー:JobDescription @ 174:77(" の[desiredSkill {{$ index}}]]の列12で式が予期されていた補間({{}})を取得しました
<div class="row"> <div class="col-lg-4 col-xs-4" [ERROR ->]*ngFor="let i of [0,1,3]"> <img src="http://ecx.images-Amazon.com/images/I/81VFU9"):
JobDescription @ 215:49パーサーエラー:JobDescription @ 174:77( "の[desiredSkill {{$ index}}]の列13の予期しないトークン '{'
<div class="row"> <div class="col-lg-4 col-xs-4" [ERROR ->]*ngFor="let i of [0,1,3]"> <img src="http://ecx.images-Amazon.com/images/I/81VFU9"):
JobDescription @ 215:49パーサーエラー:JobDescription @ 174:77( "ERROR-> =" main.applyJob()の[desiredSkill {{$ index}}]の列12で式が予期されていた補間({{}})を取得しました) ">ジョブERRORに適用-> =" main.applyJob() ">ジョブに適用] [hidden] ="!ifNotApplied "> Applied] [hidden] ="!ifNotApplied "> Applied] [hidden] ="! ifNotUploaded "> CVのアップロード] [hidden] ="!ifNotUploaded "> CVのアップロードこの仕事について質問がありますか?
[エラー->]この仕事について質問がありますか?[エラー->]
標準のプロパティバインディング内で補間を使用することはできません。表現が必要です。
それがあるはずです:
[attr.aria-labelledby]="'desiredSkill' + $index"
または
attr.aria-labelledby="desiredSkill{{$index}}"
通常、このエラーは、同じHTMLプロパティに内挿とプロパティデータバインディングの両方を実装しようとすると発生します。
例:
間違った実装
[disabled]= {{isDisabled}}
正しい実装
disabled= {{isDisabled}}
注:html要素のプロパティから角かっこを削除します
index
of ngFor
を宣言するのを忘れたと思う
*ngFor="let item of ['Elastic Search','Database Theory','CVS'];let $index=index" ...
また、使用して、
[attr.aria-labelledby]="desiredSkill{{$index}}"
これを使って
<button class="btn btn-primary" title="Edit" (click)="showEditModal(record.id)"><i class="fa fa-edit"></i></button>
リンクタグではこのように使用します
これを使って
<a class="custom-badge status-blue" [routerLink]="'/hospital/doctorleave/'+item.Id]">Manage Leave</a>
の代わりに
<a class="custom-badge status-blue" [routerLink]="'/hospital/doctorleave/{{item.Id}}']">Manage Leave</a>
$ index値のみを渡したい場合
[attr.aria-labelledby]=" ' ' + $index"