2017-01-25 9 views
1

ig-grid列テンプレートでカスタムメイドのコンポーネントを使用しようとしています。コンポーネントはHtmlで正しく表示されますが、コンポーネントのコンストラクタには届きません。列テンプレートでカスタムコンポーネントを使用するにはどうすればよいですか?ig-grid列テンプレートでカスタムコンポーネントが読み込まれない

<script id="colTmpl" type="text/template"> 
    <custom-component data="${datatouse}"></custom-component> 
</script> 

<div> 
    <ig-grid id="grid1" data-source="vm.datasource" width="100%" primary-key="Id" auto-generate-columns="false" autocommit="true"> 
     <columns> 
      <column key="Id" header-text="Id" width="50px" data-type="number" hidden="hidden"></column> 
      <column key="datatouse" width="100%" header-text="my custom component" datatype="object" template="{{getHtml('#colTmpl')}}"></column> 
     </columns> 
    </ig-grid> 
</div> 

答えて

2

あなたはのIgnite UIのテンプレート($.ig.tmpl)をオーバーライドして、細胞にカスタムコンポーネントを適用することができます。

$.ig.tmpl = function (tmpl, data) { 
    angCells.push($compile(tmpl)($scope)); 
    return ""; 
} 

ここには、fiddleがあります。

+0

ありがとうございます。しかし、私のig-gridもコンポーネントに含まれているので、$ scopeや$ compileはありません。コンポーネント内のIgniteUIテンプレートを上書きすることは可能ですか?私はすでにig-gridの代わりに単純なng-repeatを使用して上記の問題を解決しましたが、将来の実装の場合にこれを動作させることは良いことです。 – joonash

+2

もちろん、必要に応じてIgniteUIテンプレートを上書きすることができます。しかし、代わりにAngularJSテンプレートを使用する場合は、完全に機能するAngularJSコンポーネントまたはディレクティブを得るためにテンプレートを$コンパイルする必要があります。 – dkamburov

+0

さて、$ compileを使わないとこれを動作させる方法はありません。ありがとう、次回は、このようなig-gridが必要なコンポーネントの代わりにディレクティブを使う必要があると思います。 – joonash

関連する問題