2012-08-28 1 views
0

웹 서비스에 연결하고 결과를 WinJS ListView에 표시하려고합니다. 웹 서비스는 JSON을 반환합니다. 지금까지이 마크 업이 있습니다WinJS ListView를 웹 서비스에 바인딩하려면 어떻게해야합니까?

  • 사용 WinJS.xhr는 웹 서비스에서 JSON 데이터를 얻을 :

    <div id="mediumListIconTextTemplate" data-win-control="WinJS.Binding.Template"> 
          <div> 
           <h4 data-win-bind="innerText: title"></h4> 
          </div> 
        </div> 
    
        <div id="basicListView" data-win-control="WinJS.UI.ListView" 
         data-win-options="{itemDataSource : DataExample.itemList.dataSource, 
         itemTemplate: select('#mediumListIconTextTemplate')}"> 
        </div> 
    

    여기에 내가 JS에서 할 필요가 있다고 생각거야.

  • 내가 무엇을 놓치고 배열

에서 목록을 만들 반환 된 JSON

  • 사용 WinJS.Binding.List에서 데이터 요소의 배열을 만드시겠습니까? WinJS.Binding.processAll(my_listview, data_list) 어디로 전화해야합니까? 의

    var page = WinJS.UI.Pages.define("/pages/home.html", { 
         ready: function (element, options) { 
    
          WinJS.xhr({url:'http://someservice.com'}).then(
           function(response) { 
            var json = JSON.parse(response.responseText); 
            var list = new WinJS.Binding.List(json.results); // or whatever array you are binding too 
            DataExample.itemList = list; // or however you want to get the list into DataExample.itemList 
           }, 
           function(error) { 
            //handle error 
           } 
          ); 
         } 
    

    :

  • 답변

    3

    당신은 WinJS.Binding.processAll(my_listview, data_list).

    를 호출 할 필요는 없습니다 내가 페이지의 준비 이벤트 핸들러에서, 그래서 다음 작업을 수행 할 것입니다, 당신은 단일 페이지 탐색 모델을 사용한다고 가정합니다 그것. default.js는 전체 페이지에 대해 processAll()을 처리합니다. WinJS 마술로 작업을 처리하게하십시오.

    http://slickthought.net/post/2012/08/20/Windows-8-and-HTML-Part-6-Displaying-Data-with-WinJS-ListView.aspx에서 간단한 예제를 확인할 수 있습니다. 당신이 WinJS.UI.processAll()

    에 의해 반환 약속 내부 후 실행하기 위해 다음 default.js에 활성화 된 핸들러 내부에서 방금 위의 코드를 추가 할 것입니다, 단일 페이지 모델을 사용하지 않는 경우 당신은 또한 여기 http://msdn.microsoft.com/en-us/library/windows/apps/hh465496.aspx

    리스트 뷰 퀵 스타트를 따를 수