2017-01-25 1 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

관련 문제