2015-01-06 2 views
0

내가, 같은 지침에 사용 된 템플릿을 찾고있는 정의되지 않은 경우 속성을 렌더링 할 방법 :AngularJS와 : 값이

<tr> 
    <th ng-repeat="col in tableSpec" st-sort="{{col.sortField}}"></th> 
</tr> 

이 속성 세인트 종류의 (전혀 속성) 렌더링되지 안을 때 col.sortField가 존재하지 않습니다.

$ interpolate 마녀에서 'allOrNothing'옵션에 대해 읽은 적이 있는데, {{}} 표기법을 사용할 때이 옵션을 지정할 수 있다면 원하는 것은 아닙니다.

ngAttr에 대해서도 읽었으므로이 표기법을 사용하려고합니다. ng-attr-st_sort = "{{col.sortField}}"하지만 더 이상 성공하지 못합니다.

모든 healp는 크게 감사하겠습니다.

장 - 마크 내가 알고있는 것처럼

+0

ng-attr-st_sort = "col.sortField"가 작동해야합니까? –

+0

col.sortField가 정의되지 않은 경우 어떻게 되었습니까? 무엇을 렌더링 했습니까? 지시문에 템플릿이 있습니까? –

+0

답변 해 주셔서 감사합니다. 나는 st-sort = "{{undefined}}"로 시도하고 st-sort를 얻었습니다. ng-attr-st_sort도 시도해 본 결과는 같습니다 : 결과에서 빈 속성 st-sort가 있습니다. 지시문 st-sort는 내 것이 아닙니다 (Smart Table 플러그인에서 제공합니다) – jmcollin92

답변

0

, 당신의 지시자 stSort 템플릿이 있습니다. ngHyd 지시어를 템플릿 루트 요소에 추가하고 col.sortField가 존재하는지 여부를 $ observer condition에 추가 할 수 있습니까?

.directive('stSort', [function() { 
    return { 
     restrict: 'EA', 
     template: '<div ng-hide="$notRender"></div>', 
     link: function(scope, element, attrs) { 
      attrs.$observe('stSort', function(newVal, OldVal){ 
       if(!newVal) 
        scope.$notRender = true 
       else 
        scope.$notRender = false; 

       //do your staff 

      }) 
     } 
    }; 
}]) 
+0

감사의 답변을 전하지만 st-sort 지시문은 내 것이 아닙니다 (스마트 테이블 플러그인의 일부 임). – jmcollin92

+1

스마트 테이블 코드에서 stSort 지시문을 복사하여 다시 작성하십시오. 나쁜 생각이 아닙니다. –

+0

네, 이것이 진정한 아이디어입니다. 나쁜 점은 진화론입니다. 그러나 나는이 해결책을 고려할 것입니다. – jmcollin92