2013-06-12 6 views
9

내 전제가 잘못되었습니다. AngularJS는 분명히 문제를 늦추고 있었지만, 아래에 설명 된 문제 때문이 아닙니다. 그러나 그것은 내 질문에 대한 flim의 대답이었습니다 - 각도 범위에서 요소를 제외하는 방법 -이를 증명할 수있었습니다.각도 범위에서 요소를 제외하려면 어떻게해야합니까?

나는 AJAX 가져온 데이터에서 d3 + Raphael을 사용하여 그래프를 생성하는 사이트를 구축하고 있습니다. 이 결과는 사용자가 렌더링 할 차트의 유형 (예 : 파이 수가 적고 라인 및 스택 막대의 수가 많음)에 따라 DOM에 SVG 또는 VML 요소가 많이 생성됩니다.

AngularJS가 제어하는 ​​텍스트 필드에 텍스트를 입력하면 Firefox가 크롤링됩니다. 몇자를 입력 한 다음 갑자기 나타나기까지 2 ~ 3 초 정도 기다린 다음 몇 가지를 더 입력하는 등 (Chrome은 조금 더 잘 처리하는 것 같습니다.)

페이지에 그래프가없는 경우 사용자가 생성 할 데이터를 충분히 제공하지 못했다면),이 텍스트 필드의 내용을 편집하는 것이 좋습니다. I AngularJS는 DOM을 업데이트하려고 할 때 문제가 있으며 SVG 또는 VML 요소가 수백 가지가 있습니다.

그러나 그래프에는 AngularJS가 걱정할 필요가 전혀 없습니다. (그러나, UI 요소는 이전과 그래프 후에 모두가 관심을 지불이 필요합니까됩니다.) 나는이 개 솔루션의

을 생각할 수 :

  1. 는 AngularJS와 컨트롤러 외부 그래프의 DIV를 넣어 실제로 원하는 위치에 CSS를 사용하십시오.

  2. tell AngularJS - 어떻게 든 그래프의 DIV를 신경 쓰지 않습니다. 보기 및 모델을 동기화 할 때 건너 뛸 수 있습니다.

두 번째 옵션은 문서 레이아웃 제로/시맨틱을 유지하므로 나에게 바람직합니다. 이 일을 할 수있는 방법이 있습니까? (또는 내가 생각하지 못했던 좀 더 나은 해결책)

+2

ng-non-bindale을 시도 했습니까? http://docs.angularjs.org/api/ng.directive:ngNonBindable –

+1

Angular가 모든 SVG/VML 요소를 조사해야하는 이유는 무엇이라고 생각하십니까? 그 요소들은 Angular에 의해 생성됩니까? 그렇지 않다면 Angular는 그들을 보지 않습니다. Angular는 HTML 문서 (DOM)를 한 번만 컴파일합니다. http://docs.angularjs.org/guide/concepts#startup –

+0

ng-non-bindable은 내가 찾고있는 것입니다! 그러나 Mark는 Raphael에 의해 생성 된 SVG/VML로 인해 Angular가 실제로 느리지는 않다는 것을 증명합니다. 이 블록을 무시하면 도움이되지 않습니다. 크롬에 문제가 없으므로 Firebug의 프로필러는 Chrome보다 정보가 부족하므로 속도가 어디서 느 렸는지 정확하게 알기가 어렵습니다 ... 계속 파고 있습니다. 필자의 초기 질문에 답하기 위해 필자는 전체적인 평가를하고 싶습니다. – Ben

답변

16

ng-non-bindable을 시도 했습니까? http://docs.angularjs.org/api/ng.directive:ngNonBindable

<ANY ng-non-bindable> 
    ... 
</ANY> 
+0

Liquid 템플릿 변수가있는 CKEditor 인스턴스에 문제가 있습니다. Angular는 입력 값이 Angular의 값에 구속되지 않았더라도 변수를 보간합니다. 'ng-non-bindable'을 추가하면 그것을 고칠 수 있습니다. 고맙습니다! –

+0

당신을 진심으로 환영합니다! –

관련 문제