2012-02-06 2 views
11

다음 프로젝트에 대해 Ember.js를 평가 중입니다. 지금까지 바인딩 메커니즘을 좋아하지만 접근 방법에 대한 질문이 있습니다. 문서별로 "기본 속성이 변경 될 때 HTML의 어느 부분을 업데이트할지 알기 위해 Handlebars는 고유 한 ID로 마커 요소를 삽입합니다." 나는 아마도이 태그들과 함께 살 수 있지만 매우 혼란 스럽다 (아래 예제 참조). 이 접근법의 근거는 어디서나 논의됩니다. 어떤 대안이 고려 되었습니까?Ember.js에 metamorph 스크립트 태그 대신 사용할 수 있습니까?

<tbody> 
    <script id="metamorph-0-start" type="text/x-placeholder"></script> 
    <script id="metamorph-1-start" type="text/x-placeholder"></script> 
    <tr> 
     <td class="quote-name"> 
      <script id="metamorph-7-start" type="text/x-placeholder"></script> 
      Apple 
      <script id="metamorph-7-end" type="text/x-placeholder"></script> 
     </td> 
     <td class="quote-code">...</td> 
     <td class="quote-value">...</td> 
     <td class="quote-bid">...</td> 
     <td class="quote-offer">...</td> 
    </tr> 
    ... 
</tbody> 

답변

8

내가 알고있는 MetaMorph로부터는, 스크립트 태그를 사용하는 근거는, 해당 스크립트 태그 어디서나 시각적으로 아무것도 깨지 않고 DOM 내에 표시 할 수 있습니다. 이 사실은 프레임 워크가 볼 수있는 DOM의 모든 것을 만들 수있는 방법을 허용하기 때문에이 사실을 생각할 때 매우 중요하게됩니다. 따라서 엠버를 아주 위대하게 만드는 구속력있는 "마술"을 모두 가능하게합니다.

작년 초 저는 IRC 채널에 대한 토론을 기억하고 있습니다. 예를 들어 대안이 고려되었지만 스크립트 태그가 이겼습니다.

+8

시각적으로 영향을 미치고 부러지는 것을 제외하고는. CSS 유사 클래스는 다음과 같습니다. first-child : nth-child (odd)는 이것 때문에 작동합니다. 그게 시장 사양인데 CSS 사양의 모든 기능은 사용할 수 없습니다. – Andri

+8

@Andri': first-of-type',': nth-of-type', ... – pangratz

+2

@pangratz는 모든 브라우저에서 지원되지 않으며, 다른 이유로 인해 많은 기존 코드가 수정되어야합니다. 예를 들어, jQuery.timeago는 Metamorph 스크립트 태그 때문에 중단됩니다. –

관련 문제