2014-04-15 3 views
2

와 지시어를 사용하여 동적 템플릿 부품을 구축하는 방법을 Angular.js.내가 너무 좋아 ... 지시문있어 고립 범위

 scope.menu = {//new data for menu view directive part} 
     var $nodeTemplate = '<div form-menu-builder-menu menu="menu"></div>'; 
     var html = $compile($nodeTemplate)(scope); 
     $content.append(html); 

는 나는이 지시어는 분리 범위가 아니라 것이라는 formMenuBuilderMenu 지침에 scope 섹션을 정의했기 때문에

을 만들어 새로운 인스턴스에 영향을하지만이 작동하지 않는다는 인상을 가지고 있었다 모든!

$ compiler를 사용하여 새로운 지시문을 만들 때마다 scope.menu은 격리 된 범위를 유지하지 않고 만든 모든 이전 지시문에 대해 새 값을 사용하여 업데이트됩니다. 실제로 작성된 각 지시문에 scope을 로그 아웃하면 매번 동일한 범위 인스턴스가 표시됩니다.

지침 범위가 독립적으로 유지되고 각 인스턴스가 자체적으로 scope을 갖도록하려면 어떻게해야합니까? 심지어 가능할까요? 추가 설명이 필요한 경우 알려 주시기 바랍니다. 내가 올바른 방향으로 포인터를 높이 평가할 수 있도록 잘못된 방향으로 가고 있다고 확신합니다.

필자의 주된 목표는 기본적으로 데이터의 하위 집합으로 된 지시문을 사용하여 동적 템플릿 부분을 만드는 것입니다.

답변

1

대신 :

var html = $compile($nodeTemplate)(scope); 

이 시도 :

var html = $compile($nodeTemplate)(scope.$new()); 
+0

정말 고마워요! 정확히 내가 무엇을 찾고 있었는지. 매우 감사. – markstewie

관련 문제