2014-02-08 2 views
0

winjs에서 목록보기의 모든 항목을 얻고 나는 사용자가 지정하는 나는 사용자 정의 입력 유형을 추가 한 각 항목에 이제 성공적으로나는 화면에리스트 뷰 사업부가

var lettersList = new WinJS.Binding.List(jsonArrayForClearance); 
var list_ = document.getElementById("prodListView").winControl; 
list_.itemDataSource = lettersList.dataSource; 
list_.itemTemplate = document.getElementById("tileTemplate"); 
list_.forceLayout(); 

을 itemDataSource을 추가 한). 목록의 모든 항목을 반복하고 해당 입력 유형의 값을 배열에서 가져와야합니다. 어떻게 할 수 있습니까?

편집 : 제 질문은 목록 항목에 선언 된 사용자 지정 입력 형식에 액세스하는 것입니다. 따라서 다음 코드를 사용하여 "inpT"라는 입력 유형에 액세스하십시오.

document.getElementById('inpT'); 

목록 항목에서 동일한 액세스 방법은 무엇입니까? (user2608614에 의해 제안) 내가 코드를 사용할 수 있습니다

var listView = document.getElementById("prodListView").winControl; 
var list = listView.itemDataSource.list; 
for (var i = 0; i < list.length; i++) { 
    var item = list.getAt(i); 
    item.getElementById('inpT'); 
} 

답변

1

당신은 같은 목록 요소를 반복 할 수는 약속 체인 어렵게 만들로

var listView = document.getElementById("prodListView").winControl; 
    listView.itemDataSource.getCount() 
    .done(function(count) { 
     for (var i = 0; i < count ; i++) { 
      listView.itemDataSource.itemFromIndex(i) 
      .done(function (item) { 
       //***item will contain your property 
      }); 
     } 
    }); 

이 최고의 해결책이 아니라, 나는 또한 더 나은 것을 찾고있다. 그러나 그것은 효과적이다.

0

Binding.List를 사용하고 있으므로 배열과 매우 비슷하게 반복 할 수 있습니다.

var listView = document.getElementById("prodListView").winControl; 
var list = listView.itemDataSource.list; 
for (var i = 0; i < list.length; i++) { 
    var item = list.getAt(i); 
    // do something with this item 
} 

기억하는 유일한 점은 [] 지원하지 않는 대신에 당신이 .getAt()와 .setAt()를 사용해야한다는 것입니다.

관련 문제