2012-11-29 2 views
1

다음 html이 저를 위해 작동하지 않습니다.Win8 App에서 WinJS.Binding.Template의 id를 어떻게 설정합니까?

<div id="weightListViewTemplate" data-win-control="WinJS.Binding.Template"> 
<span data-win-bind="innerText: name; id: id"></span> 
</div> 

<div id="basicListView" style="width:420px;height:600px" data-win-options="{ itemTemplate: select('#weightListViewTemplate') }" 
    data-win-control="WinJS.UI.ListView"> 
</div> 

목록이 표시되지만 ID 속성이 스팬 개체에 설정되어 있지 않습니다.

데이터 소스/배열의 해당 값을 기반으로 템플릿에서 스팬의 id를 동적으로 설정하는 방법은 무엇입니까?

답변

0

실제 ID 속성을 사용하지 않는 것이 좋습니다. 데이터 바인딩을 통해 설정할 수 없다고 생각합니다. WinJS는 DOM 요소에 약한 참조를 허용하기 위해 커버 아래의 요소에 ID를 사용합니다. 이 때문에 ID를 설정할 수 없습니다.

대신 다른 속성이나 속성을 사용하는 것이 좋습니다.

+0

Dominic은 정확합니다. 바인딩을 사용하면 명시 적으로 id 속성을 설정할 수 없습니다. 바인딩을 사용하는 경우 바인딩 된 데이터를 변경하여 DOM을 조작해야하며 DOM에서 확장을 찾는 것이 좋습니다. –

+0

@ChrisTavares 그냥 'id'를 사용하지 않으면 item.someProperty === someValue를 찾기 위해 항목을 반복하지 않고 항목에 빠르게 액세스 할 수있는 대안이 무엇인지 궁금하십니까? –

+0

DOM의 경우이 방법은 도움이되지 않습니다. 일부 글로벌 ID 생성기를 사용하지 않는 한 쉽게 이름 충돌이 발생할 수 있습니다. 요소를 찾으려면 querySelector에 클래스, 속성 또는 기타 속성을 추가해야합니다. –

관련 문제