2016-10-17 3 views
0

サードパーティ製のダーツコンポーネントを拡張する

私はのbs-tableを使用して、一部のユーザーに関する情報を表示しようとしています。私はそれを行うことができて、それは動作しますが、私はnull valuesに問題があります。すべてのセルデータが反射によって解決されるので、テーブルにはnullと表示されます。私はコードを第三者のライブラリから得たもので、私はそれを編集することができないので、このnullsを空の文字列で置き換える方法を見つけようとしています。

私はBsTableComponentクラスを拡張しようと考えていたので、セルデータを解決するメソッドをオーバーライドできましたが、情報を表示できず、エラーも表示されませんでした。

これは私がこれまでに試したコードですが、私にはテーブルが表示されず、表示するデータがあります。

@Component(
selector: 'bs-table-custom', 
template: <ommited for brevity> 
directives: const [BsColumnDirective]) 
class BsTableCustomComponent extends BsTableComponent { 
    String getData(dynamic row, String fieldName) => 
     fieldName.split('.').fold(row, (prev, String curr) { 
     var prevValue = prev is Map 
      ? prev[curr] 
      : serializable.reflect(prev).invokeGetter(curr); 

     if(prevValue == null || (prevValue is List && prevValue.isEmpty)) { 
      return ""; 
     } 

     return prevValue; 
     }).toString(); 
ダーツでサードパーティ製のライブラリを拡張する方法がわかりません。必要なものを実現するための簡単な方法があるかどうかはわかりません。

助けが必要です。 ありがとう

+0

現在、コンポーネントの拡張は現在サポートされていません。試してみることもできますが、AFAIKではサブクラスのすべてのメタデータ '@Input()'、 '@Output()'、 '@ViewChild()'、...をすべて繰り返す必要があり、またすべて 'OnXxx'を実装します。 –

+0

だから私はlibをコピーする必要があります...私は出力に適用することができますが、私は何も見つかりませんでしたアダプタなどを探してきました。私はクラス全体をコピーして使用しようとしましたが、まだデータがありません。おそらく、 'BsTableComponent'と 'BsColumnDirective'の権利をコピーしなければならないでしょうか? – djointster

答えて

0

ファイルをコピーし、必要に応じて編集することで、私の問題を解決することができました。

関連する問題