0

各セルがその座標に対応する一意の ID を持つようにテーブルを作成しようとしています。これは Polymer では問題ありません。やったばかり

<table id="table"> <template repeat="{{ file in files }}"> <tr> <template repeat="{{ rank in ranks }}"> <td id="{{file}}{{rank}}">{{ space }}</td> </template> </tr> </template> </table>

ここでranksfilesspaceは、Polymer() 関数に渡されるオブジェクトのキーです (それぞれ配列と文字列)。これはすべて期待どおりに機能します。

ここでの問題は、テンプレートで生成された ID でテーブル セルの 1 つを選択することです。やっている

var place = file + rank; this.$.place.innerHTML = 'foo'

「未定義のinnerHTMLプロパティを設定できません」というエラーがスローされるため、機能しません。テンプレートで明示的に定義されていない ID (「#table」など) を検索する方法を Polymer のカスタム ノード検索構文に伝える方法を思いつくことはできません。

4

1 に答える 1

1

ID を持つ要素の自動ノード検索は、要素が最初に設定されるときに設定されます。私の知る限り、動的に作成された ID を持つノードには使用できません。代わりにthis.shadowRoot、ノードを使用してクエリを実行します。

this.shadowRoot.getElementById(place).innerHTML = 'foo';

var place = file + rank;
this.$.place.innerHTML = 'foo';

動作しません。placeは変数であり、 のプロパティではありません$。配列表記を使用する必要があります。

this.$[place].innerHTML = 'foo';

ただし、要素が準備された後に ID が動的に作成されるため、これは機能しません。

于 2014-06-08T01:15:05.353 に答える