2014-07-17 2 views
0

MVC 아키텍처로 설명하는 YQL에 대한 블로그 나 예제를 찾고 있습니다. 부엌 싱크대의 예를 이해하는 것이 어렵다고 느낍니다. 어느 누구도 YQL에서 간단한 MVC를 공유 할 수 있습니까? 그래서 다른 사람들에게도 도움이 될 것입니다.YQL in sencha touch MVC

답변

3

저는 YQL에 대해 모르지만, 기본적으로 일부 원격 API에 대한 요청 인 user3849047 링크를 기반으로합니다. 통합은이 초안보다 조금 까다 롭습니다.

기본적으로 이것이 작동하는 방법입니다.

API 호출로부터 데이터를 얻을 수 있습니다. 이 데이터는 Ext.data.Model로 표현 될 수 있습니다. 한 무리의 모델이 구성되어 Ext.data.Store에 저장됩니다.

그래서 저장소를 채우는 것만으로도 충분합니다. 두 가지 방법이 있습니다.

는 컨트롤러에서 그것을 수행

Ext.create("Controller", { 
    extend: "Ext.app.Controller", 

    getStoreData: function() { 
     var me = this; 
     Ext.data.JsonP.request({ 
      url: "yqlRequestUrl", 
      params: { 
       // request parameter 
      }, 
      success: function (result, request) { 
       me.fillStore(result); 
      } 
     }); 
    }, 

    fillStore: function (result) { 
     var data = transformResultIntoModels(result); 
     var store = Ext.getStore("myStore"); 
     store.add(data); 
    } 
}); 

당신은 API 요청 및 모든 스스로 모델에 응답의 변환을 실행합니다.

또는 상점은 당신을 위해 그것을 할 수 있도록이 저장소가 autoLoad: false로 설정되어

Ext.define("MyStore", { 
    extend: "Ext.data.Store", 

    autoLoad: false, 
    storeId: "mystore", 
    model: "MyModel", 
    proxy: { 
     type: "jsonP", 
     url: "yqlRequestUrl", 
     extraParams: { 
      // request parameter 
     }, 
     reader: { 
      type: "json", 
      rootProperty: "yourRootElement" 
     } 
    } 
}); 

때문에 당신은 내가 YQL에서 저장소를 사용하여 생각

store.load({ 
    callback: function (records, operation, success) { 
    }, 
    scope: this 
}); 
+0

마틴 덕분에 수동으로 저장소를로드해야합니다 다를 수 있습니다. –