1

我尝试在这里完成教程,当我使用他们的数据服务时,它工作得很好。我将源代码修改为我的数据服务(WCF 数据服务 v5.6、OData V2),列表只显示加载符号,没有任何反应。代码应该加载任何数据类型,它只需要相应地映射。我的服务是通过浏览器提供的,我检查了。

这是代码:

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;
}

我还应该设置什么?

4

1 回答 1

0

在这种情况下,该try-catch块将无济于事,因为数据加载是异步的。相反,订阅fail回调:

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

从 JavaScript 访问 Web 服务的另一个常见问题是同源策略。您的 OData 服务必须支持CORSJSONP。请参阅此讨论

于 2013-11-28T07:44:46.830 回答