ローカル変数(#
文字で定義)は、使用例には当てはまりません。
実際、HTML要素にローカル変数を定義すると、それはコンポーネントが存在する場合に対応します。要素に要素がない場合、変数は要素自体を参照します。
ローカル変数の値を指定すると、現在の要素に関連付けられている特定のディレクティブを選択できます。例えば:
<input #name="ngForm" ngControl="name" [(ngModel)]="company.name"/>
はname
変数に現在関連付けられngForm
指令のインスタンスを設定します。
ローカル変数は、ループの現在の要素に対して作成された値を設定することを目的としていません。
あなたがそのような何かをしようとした場合:
<div *ngFor="#elt of eltList" >
<span #localVariable="elt.title"></span>
{{localVariable}}
</div>
あなたはこの次のエラーがあります:
Error: Template parse errors:
There is no directive with "exportAs" set to "elt.title" ("
<div *ngFor="#elt of eltList" >
<span [ERROR ->]#localVariable="elt.title"></span>
{{localVariable}}
</div>
"): [email protected]:10
Angular2は、実際にここに提供された名前elt.title
に一致するディレクティブを探します)... https://plnkr.co/edit/qcMGr9FS7yQD8LbX18uY?p=preview
このリンクを参照してください:http://victorsavkin.com/post/119943127151/angular-2-template-syntax、詳細については、「ローカル変数」を参照してください。 etails。index
、last
、even
とodd
:
反復の現在の要素に加えて、ngForm
はローカル変数にエイリアスすることができるエクスポート値のセットを提供します。
このリンクを参照してください:あなたは何ができるかhttps://angular.io/docs/ts/latest/api/common/NgFor-directive.html
は、ループ内の要素を表示するサブコンポーネントを作成することです。現在の要素をパラメータとして受け入れ、コンポーネントの属性として "ローカル変数"を作成します。この属性はコンポーネントのテンプレートで使用できるため、ループ内の要素ごとに1回作成されます。ここではサンプルです:
@Component({
selector: 'elt',
template: `
<div>{{attr}}</div>
`
})
export class ElementComponent {
@Input() element;
constructor() {
// Your old "localVariable"
this.attr = createAttribute(element.title);
}
createAttribute(_title:string) {
// Do some processing
return somethingFromTitle;
}
}
し、それを使用する方法:
<div *ngFor="#elt of eltList" >
<elt [element]="elt></elt>
</div>
編集が
あなたのコメントの後、私はあなたがこの中に記載されているアプローチを試みることを考えます回答。詳細はこちらcreate dynamic anchorName/Components with ComponentResolver and ngFor in Angular2です。
はティエリー
は、なぜそれがローカル変数でなければならないの 、それはあなたのお役に立てば幸いですか!なぜ属性を設定するだけではないのですか?とにかく 'elt.title'は文字列のようです。 –
DynamicComponentLoaderのloadIntoLocation()関数でこれを使用するため、ローカル変数にする必要があります。その関数の3番目の引数が正しく理解されていれば、HTMLのアンカー "#something"を参照する文字列です素子。 –
'loadNextToLocation'はこれが役立つ場合にだけ' ElementRef'を必要とします。私はそのような変数を作成することが実際に可能かどうかは分かりません。 –