2016-05-05 7 views
1

たとえば、一連の入力があり、そのページの上に向かって「タブ」属性を設定したいと考えています。テンプレートを後で編集して新しい入力を挿入する可能性があり、すべての番号をやり直したくないため、正確なタブ番号を言いたくはありません。コンポーネントの機能を使用すると、エラーが発生してAngular 2テンプレートで変数(非要素)を宣言して操作することはできますか?

<input [attr.tab]="1" /> 
<input [attr.tab]="2" /> 
<input [attr.tab]="3" /> 

だから、私はむしろ、テンプレートに変数ローカルを使用すると思います(「式を」...「それが確認した後に変更されました。」)

* ngForのようなディレクティブには、そのようなローカライズされた変数があります。したがって、同じことをコンポーネントテンプレートで行うことは可能ですか?または、この効果を一般的に達成する方法(つまり、単にフォームや何かにするのではない)ですか?

同様:

<input [attr.tab]="let i = 1, i" /> 
<input [attr.tab]="i++" /> 
<input [attr.tab]="i++" /> 

テンプレート構文ドク:https://angular.io/docs/ts/latest/guide/template-syntax.html

編集:* ngForまたは任意のテンプレートのループを使用していない、私は内側のテンプレートを指定しようとしていませんよ。

答えて

1
<input [attr.tab]="'1'" #tab1 /> 
<input [attr.tab]="tab1.getAttribute('tab') + 1" /> 
<input [attr.tab]="tab1.getAttribute('tab') + 2" /> 

この未公開の問題も参照してください。 https://github.com/angular/angular/issues/2451

+0

賢明なアイデアですが、残念ながら、コードのメンテナンスが容易ではないそれぞれの( '+ 1'、 '+ 2'など)固有の式を書く必要があります。多分この方法は解決策につながるかもしれません。オープンな問題も非常に役に立ちます。ありがとう! – dmcblue

+0

これがたくさん必要な場合は、より簡潔な方法でこれを行うためのヘルパーディレクティブを作成することが可能でなければならないと思います。 –

関連する問題