2014-04-21 2 views
0

동적으로 생성 된 지시문 (함수 사용)과 각도 표현식이 최종 마크 업에서 필터링되어 화면에 표시되지 않는 문제가 있습니다. 나는 JSFiddle displaying the problem here을 만들었습니다.동적으로 생성 된 템플릿에 각도식이 누락되었습니다.

요소 내부의 특성을 기반으로 마크 업을 생성하는 방법이 필요했기 때문에 템플릿을 동적으로 생성합니다. 과 같이 인체에

angular.module('ui.directives', []).directive('uiBar', function() { 
    return { 
     restrict: 'E', 
     template: function(element, attrs) { 
      console.log('hello'); 
      return '<div>lol: {{ user }}</div>'; 
     } 
    }; 
}); 

및 배치 :

기본적과 같이 식을 정의 할 때

<div ng-app="myApp"> 
    <ui-bar>I should change to iambar</ui-bar> 
</div> 

얻어진 마크 업이다

<div ng-app="myApp" class="ng-scope"> 
    <ui-bar><div class="ng-binding">lol: </div></ui-bar> 
</div> 

발현은 웬일인지 퇴장했다. 아무도 이것을 경험 한 적이 있습니까?

+0

보기에'{{user}} '표현식을 표시해야합니까? 그렇지 않다면, 지시어 (또는 그 부모 범위)에'user'를 정의 할 수 있습니다. 범위 (또는 부모 범위)에서 이름을 찾을 수없는 경우 각도가 자동으로 값을 나타내지 않는 것처럼 보입니다.이 피들을 살펴보십시오. http://jsfiddle.net/qQPb6/ – javaCity

+0

다음은 실제로 작동 중임을 보여주는 또 다른 샘플입니다. http://jsfiddle.net/EM9wv/7/ angularjs가 지정한 ng-bind 지시문을 컴파일했습니다. '{{user}} '를 사용하여 – JoseM

+0

아마도 Transclude가 원하는대로 작동할까요? link : https://docs.angularjs.org/api/ng/directive/ngTransclude – SoEzPz

답변

0

동적으로 생성 된 템플릿으로 수행하려는 작업을 이해하지 못합니다. 아래는 귀하의 예를 해결하기 위해 제가 일반적으로하는 일입니다.

HTML 형식은 다음과 같습니다.

<ui-bar new-value="hello">I should change</ui-bar> 

지침의 return 문은 위의 코드가 jsFiddle에서 작동이

return { 
    restrict: 'E', 
    template: "<div>lol: {{ user }}</div>", 

    link: function (scope, element, attrs){ 
    scope.user = attrs.newValue; 
    } // end link 
} // end return 

처럼 보일 것입니다.

정보를 더 추가 할 수 있다면 더 많은 예제를 제공 할 수 있습니다.

관련 문제