2016-07-05 2 views
1

나는 그래서 내가 한 지침 '에는 myGrid'을 가지고이 템플릿 년대에 나는 이런 식으로 뭔가가 있다고 가정하자, 다른 지시어 내에서 조건부 을 지시어를 사용에 문제가 :각도 조건부 사용 지시문 ATTR

<table my-grid-resizable>...</table> 

<my-grid resizable="true" /> 

을하지만 난에는 myGrid 지침의 템플릿 내부 NG-경우 사용하지 않으 :

와 나는이 같은에는 myGrid 지시어를 사용하는 경우에만 myGridResizable 지시어를 사용하고 싶습니다.

if (scope.resizable) { 
      angular.element(element).find('table').attr('my-grid-resizable', ''); } 

그러나뿐만 아니라 돕는 일 아닌가요 지시어를 재 컴파일, 속성이 추가됩니다 작동하지 않습니다하지만 지시어가 작동하지 않는 :

나는이 시도. 당신은 단지 속성을 설정하고이

답변

0

해결에 도움을

덕분에, 그러나, 이것은 DOM은 그 자체에 소화되는 것은 아닙니다. DOM이 업데이트되지 않는 이유는 모델이나 바인딩을 업데이트하지 않기 때문입니다. DOM을 수정하는 것뿐입니다.

그래서 당신은 그 다음 할

첫째, 당신의 지시 또는 (적용 중) 컨트롤러

$compile을 투입, 수동처럼 요소를 컴파일 할거야 ​​:

if (scope.resizable) { 
    angular.element(element).find('table').attr('draco-grid-dynamic-table', ''); 
    var html = angular.element(element).find('table').html(); 
    var compiledHtml = $compile(html)(scope); 
    angular.element(element).find('table').html(compiledHtml); 
} 

이를 그러나 작동하지만 각도가 없으며 매우 낙담합니다. ng-if 구조를 사용하고 싶지 않은 이유를 모르겠습니다. 그것은 일을하는 각도의 방법입니다.

+0

Nope도 작동하지 않습니다. – Michal

+0

전에 컴파일 해 보았습니다. 코드를 복제하지 않으려 고합니다. – Michal

+0

@Michal 예, 코드를 복제하고 싶지는 않습니다. 복제를 피할 수있는 방법이 있습니다. 많은 코드. 'ng-if' 내부에있는 템플릿을 별도의 템플릿 파일에 랩핑하고'ng-include'를'ng-if's 안에 넣을 수 있습니다 – Chanthu