0

Material Design Lite のテーブル コンポーネントに問題があります。mdl-data-table--selectable行を選択可能にするクラスで定義しました。HTMLで静的に定義されている場合はそうですが、ノードを動的に作成してテーブルに追加すると、選択可能になりません。

このフィドルを見てください

追加しましたcomponentHandler.upgradeElement(tr);が、問題は解決せず、例外もスローされたので、それなしで続行しました。

こんにちは、これに対する答えが見つからないので、テーブルを更新する方法について新しい提案をお待ちしています。現在、すべてのコンテンツを削除し、要素を動的に追加する必要があるテーブルを再度生成しています。どんな提案でも大歓迎です。

4

4 に答える 4

2

クラス「mdl-data-table--selectable」は削除されます。チェックボックスを自分で制御できるようになりました。

https://github.com/google/material-design-lite/wiki/Deprecations#automatic-selection-checkboxes

于 2015-10-21T11:04:58.843 に答える
2

プロジェクト サイトから:

Material Design Lite は、ページの読み込み時に MDL クラスでマークされたすべての要素を自動的に登録してレンダリングします。ただし、DOM 要素を動的に作成する場合は、upgradeElement 関数を使用して新しい要素を登録する必要があります。

http://www.getmdl.io/started/index.html#dynamic

于 2015-07-22T14:12:27.543 に答える
0

私はこれと同じ問題を抱えていて、回避策を見つけました。追加する行を含む新しい MDL テーブルを動的に作成し、次のようにテーブルをアップグレードします。

componentHandler.upgradeElement(tableelem);

アップグレード後、元のテーブルの tbody 要素に行を追加することで、行を新しいテーブルからページ上のテーブルに移動できます。ルック、フィール、および動作は行と一致します。

私が見つけた唯一の問題は、MaterialRipple の動作がチェックボックスに実装されていないことです。これは、componentHandler.upgradeElement(tableelem) メソッドを使用してアップグレードされたすべてのテーブルに問題があるようです。ほとんどの場合、MDL のバグです。

componentHandler.upgradeElement(tableelem) の実行時にエラーが発生した場合は、動作を指定してみてください。

componentHandler.upgradeElement(tableelem,'MaterialDataTable');
于 2015-07-27T19:48:25.903 に答える