如何创建函数以从 WCF Rest 获取数据然后显示到表格

Posted

技术标签:

【中文标题】如何创建函数以从 WCF Rest 获取数据然后显示到表格【英文标题】:How to create function to get data from WCF Rest then display to table 【发布时间】:2017-04-24 16:14:47 【问题描述】:

我已经声明函数来获取 WCF Rest 名称是service.js,url 获取 Json 数据。然后我创建另一个函数来获取数据entryCtrl.js 然后显示到 html

service.js

(function (app) 
  app.service("CRUD_AngularJs_RESTService", function ($http) 
    this.getAllEntry = function () 
      return $http.get("http://localhost:51458/ServiceRequest.svc/GetAllRequest/");
    ;
  );
)(angular.module('model'));

entryCtrl.js

(function (app) 
  'use strict';
  app.controller('entryCtrl', entryCtrl);
  entryCtrl.$inject = ['$scope'];
  function entryCtrl($scope) 
      $scope.pageClass = 'page-entry';
      $scope.GetAllRecords = function() 
          var promiseGet = CRUD_AngularJs_RESTService.getAllEntry();
          promiseGet.then(function (pl)  $scope.EntryData = pl.data ,
                function (errorPl) 
                    $log.error('Some Error in Getting Records.', errorPl);
                );
      
  
)(angular.module('model'));

查看entry.html

<table data-ng-controller="entryCtrl">
   <tbody data-ng-repeat="entry in EntryData">
     <tr>
       <td>entry.name</td>
       <td>entry.telpon</td>
       <td>entry.foobar</td>
     </tr>
   </tbody>
</table>

我没有任何错误,表中的数据没有显示任何内容。我必须尝试什么才能知道它的功能是否有效?

jush 有警告XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience。我不知道这是什么意思。

【问题讨论】:

您已经定义了function GetAllRecords() ,因此这不是$scope 对象上的函数。而不是$scope.GetAllRecords(),只做GetAllRecords(),或者在作用域对象上定义函数,比如$scope.GetAllRecords = function() //.. 请举个例子。谢谢 好的,谢谢。这是工作创建功能。但不显示表格。并且没有错误。我在错什么? @devqon 检查您的pl.data 结果并检查它是否确实是一个数组,其中包含您的模板所期望的属性nametelponfoobar 的对象 如何尝试结果?请举例 【参考方案1】:

函数GetAllRecords() 未设置为$scope。在调用$scope.GetAllRecords()之前需要设置$scope.GetAllRecords = GetAllRecords

function entryCtrl($scope) 
  $scope.pageClass = 'page-entry';
  $scope.GetAllRecords = function() 
      var promiseGet = CRUD_AngularJs_RESTService.getAllEntry();
      promiseGet.then(function (pl)  $scope.EntryData = pl.data ,
            function (errorPl) 
                $log.error('Some Error in Getting Records.', errorPl);
            );
  
  $scope.GetAllRecords();

或者,您可以直接调用GetAllRecords(),因为$scope 中似乎不需要它:

function entryCtrl($scope) 
  $scope.pageClass = 'page-entry';
  (function() 
      var promiseGet = CRUD_AngularJs_RESTService.getAllEntry();
      promiseGet.then(function (pl)  $scope.EntryData = pl.data ,
            function (errorPl) 
                $log.error('Some Error in Getting Records.', errorPl);
            );
  )();

【讨论】:

你是我的这样吗? entryCtrl.$inject = ['$scope', GetAllRecords]; function entryCtrl($scope) ..; function GetAllRecords() var promiseGet = CRUD_AngularJs_RESTService.getAllEntry(); ..

以上是关于如何创建函数以从 WCF Rest 获取数据然后显示到表格的主要内容,如果未能解决你的问题,请参考以下文章

如何从 android 客户端调用 REST WCF 服务

如何同时使用 SOAP WCF 服务和 REST API

如何在rest wcf服务中上传pdf文件和其他字符串参数

WCF REST tcp 错误

在 WCF REST 服务 POST 方法中处理 Json 请求数据

如何使用 wcf REST 服务获取自定义对象的 json 响应?