2013-10-29 47 views
1

我試圖完成教程here,當我使用他們的數據服務時,它工作得很好。 我將源代碼修改爲我的數據服務(WCF數據服務v5.6,OData V2),並且列表只顯示了符號,沒有任何反應。 代碼應該加載任何數據類型,它只需要進行相應的映射。我的服務通過瀏覽器可用,我查了一下。DevExtreme datasource無法加載數據服務數據

下面是代碼:

DevExTestApp.home = function (params) { 
    var viewModel = { 
    dataSource: DevExpress.data.createDataSource({ 
     load: function (loadOptions) { 
     if (loadOptions.refresh) { 
      try { 
      var deferred = new $.Deferred(); 
      $.get("http://192.168.1.101/dataservice/dataservice.svc/People")   
      .done(function (result) { 
       var mapped = $.map(result, function (data) { 
       return {     
        name: data.Name 
       } 
       }); 
       deferred.resolve(mapped); 
      }); 
      } 
      catch (err) { 
      alert(err.message); 
      } 
      return deferred; 
     } 
     } 
    }) 
    }; 
    return viewModel; 
} 

我還需要設置?

回答

0

try-catch塊不會幫助這種情況,因爲數據加載是異步的。相反,訂閱fail回調:

$.get(url) 
    .done(doneFunc) 
    .fail(failFunc); 

與從JavaScript訪問Web服務的另一個常見的問題是Same-Origin Policy。您的OData服務必須支持CORSJSONP。請參閱this discussion