2014-11-24 2 views
1

각도 응용 프로그램 내에서 Google지도를 사용하고 있습니다. Google지도의 API에 따라 string을 HTML이 포함 된 google.maps 함수에 전달하면 라이브러리가이를지도에 InfoView로 표시합니다.외부에로드 된 DOM 요소를 각도의 범위에 바인딩

이보기에 단추를 추가하고이보기를 내각 응용 프로그램의 컨트롤러에 바인딩하려고합니다. 그러나 <div ng-controller="MyController">...</div>을 전달하더라도지도 라이브러리가 DOM에 첨부 할 때 각도가 통보하지 않았다.

이 요소의 컴파일을 강제로 수행 할 수있는 방법은 무엇입니까?

답변

2

AngularJS가 지시어를 "알아 차리는"경우, 요소를 컴파일해야합니다. 이는 응용 프로그램을 부트 스트랩하는 경우를 제외하고는 자동으로 수행되지 않습니다. 따라서 API를 사용하면 DOM Element을 전달할 수 있어야하며, 전달하기 전에 $compile에 연결하고 연결해야합니다. DOM에 추가 된 다음 요소를 찾아서 $compile에 연결하고 연결해야합니다. AFAIK, 당신이 그 중 하나를 할 수 없다면, 당신이 요구하는 것은 불가능합니다. 당신이 요소를 잡아 관리하는 경우


compiling it$scope 당신이에 연결하려는 범위는 (어쩌면 $rootScope)입니다

$compile(element)($scope); 

를 호출만큼 간단합니다.

+0

처음 시도했지만 DOM 요소를 전달하지 않습니다. 두 번째 이야기에 대해 어떻게 생각하세요? 추가 된 요소를 쉽게 찾을 수 있다고 생각합니다. 그리고 뭐? – Cystack

+0

답변에 추가하겠습니다. – hon2a

+0

나는 그것을 만들었지 만 요소가 사용 가능할 때까지 $ compile에 setTimeout을 추가해야만했다. – Cystack

관련 문제