이 설정에는 몇 가지 복잡한 문제가 있습니다.
첫 번째는 각도는 사용자 지정 요소에 결합하는 방법을 알고, 그래서 같은 고분자 구성 요소에 각도 내에서 바인딩을하지 않는다는 것입니다 :
<my-element foo="{{ bar }}">
이 요소의 foo는 속성을 설정합니다,하는 수 문자열 일 뿐이며 Node.bind를 사용하여 foo 속성에 대한 바인딩을 설정하지 않습니다. 이것은 복잡한 오브젝트 바인딩 또는 양방향 바인딩을 원할 때 큰 문제입니다.
Node.bind를 Angular 내에서 사용할 수있는 지시문을 만들었지 만 Dart 용입니다. 당신은 그것을 JS로 포팅 할 수 있습니다 : https://github.com/google/angular_node_bind.dart
이것은 두 개의 사각 괄호로 표현식을 캡처하고 Node.bind를 통해 조사 식과 바인딩을 설정함으로써 작동합니다. 이전 예는 다음으로 변경됩니다.
<my-element foo="[[ bar ]]">
바인딩은 양방향입니다. <my-element>
이 foo의 값을 변경하면 bar의 값이 업데이트됩니다.
두 번째 문제는 종속성 주입입니다. 브라우저는 사용자 정의 요소를 작성해야하므로 Angular는 작성시기를 알지 못하고 종속성을 주입 할 기회가 없습니다. 따라서 Polymer 요소가 앵귤러 서비스 (또는 모든 서비스 객체, 실제로는 앵글 또는 앵커)를 유지할 수있는 방법이 필요합니다.
각도 노드 바인드와 같은 것을 사용하면 바인딩을 사용하여 요소에 서비스를 전달할 수 있습니다. 어쩌면이 같은 :
<my-element http-service="[[ $http ]]">
(내가 정말 각도 전문가가 아니에요 때문에, 내가하지 $ HTTP 그냥 사용할 수 있음을 100 % 확신 해요, 난 그냥 각도려고 봤는데 폴리머 함께 재생 표현식에서).
Angular 팀은 Angular 2.0의 사용자 지정 요소를 지원할 것이라고 말했지만, recent blog post에는 언급하지 않았습니다.
흠 ... 저스틴은 아키텍처의 관점에서 의미가 있습니다. 구현 레벨의 세부 사항을 파악해야합니다. 다른 프레임 워크에서들을 수있는 브라우저에 폴리머 레이어 (그림자 DOM 읽기) 사이에 BRIDGE가 필요합니다. 간단히 말해, Polymer 객체는 JS 프레임 워크에서 구독 할 브라우저 수준까지 이벤트 (적어도 기본)를 버블 링해야합니다. – rahul