2013-12-13 3 views
2

나는 listView가있는 페이지가 있습니다. listView에서 마지막 항목의 위치를 ​​읽어야합니다. 한 번로드되었지만 올바른 순간이나 이벤트를 찾을 수 없습니다. 기본적으로 모든 항목이 목록에로드되어 있는지 확인하는 방법을 찾을 수 없습니다.listview의 항목은 언제 dom에서 사용할 수 있습니까?

리스트 뷰로드가 완료되면 내가 찾을 수 있습니다 볼 수 있듯이이 내 준비 기능이지만, 그것도 그 시점에서 항목은 DOM에서 사용할 수없는 것 같습니다 :

하나 개의 목록 만있다 페이지에서. 여기

enter image description here

와 최종 TIL 프로그램 실행 후 내 DOM 객체의 목록보기가 다음 debugger; 명령에서 응용 프로그램 중지 때 여기

ready: function (element, options) { 

    //now the onloadingstatechanged evenet for the list 
    var listView = element.querySelector(".itemslist").winControl; 
    listView .onloadingstatechanged = function (args) { 
     if (args.srcElement === listView .element && listView .loadingState === "complete") { 

      debugger; 

      /* THIS LINE SHOULD WORK IF THE ITEMS WERE LOADED, items IS INSTEAD null*/ 
      var items = element.querySelector(".itemslist .win-itemsblock"); 

      listView .onloadingstatechanged = null; 
     } 
    }; 
} 

내 DOM 객체의 목록보기입니다 :

enter image description here

+0

목록보기의 렌더링 된 요소를 얻으려는 의도는 무엇입니까? 일반적으로 바인딩과 템플릿을 사용하는 것이 좋습니다. – Sushil

+0

listView에서 마지막 요소의 위치를 ​​이해하려고하므로 목록 끝에 사용자 정의 단추를 첨부 할 수 있습니다. 이렇게 : http://stackoverflow.com/questions/20546995/how-can-i-add-a-button-at-the-end-of-a-listview –

답변

2

유형 디버거; 이벤트 본문에서 DOM Inspector를 사용하여 DOM을 검사하고 ListView가 완성되었는지 확인하십시오. 로딩 상태가 완료되면 DOM 요소에 액세스해야하므로 선택기에 문제가있을 수 있습니다.

+1

DOM 개체의보기로 내 질문을 업데이트했습니다. loadstate complete 이벤트 내에서, 그리고 그 후에 listView가 무엇인지에 대한 뷰를 제공합니다. 모든 win-container 개체가로드 된 후 발생하는 이벤트를 찾을 수 없습니다. 선택기가 정상적으로 작동하는지 확인할 수 있습니다. –

+1

아마 비동기 적으로 데이터를로드한다는 것을 언급 할 가치가 있지만 이벤트에 영향을주지 않아야합니다. –

+2

문제는 첫 실행 후 onloadingstatechanged 이벤트를 사용하지 않도록 설정 한 것입니다. 항목이로드 될 때마다 실행해야합니다. 처음로드 할 때로드 할 ListView 데이터가 없습니다. 'listView .onloadingstatechanged = null;'줄을 제거하고 중단 점이 결국 항목에 대해 널이 아닌 값을보고하는지 확인하십시오. –

관련 문제