angularjs 获取服务端口数据的方法---$http,$resource,Restangular

angularjs 获取服务端口数据的方法(三种):  $http, $resource, Restangular.   另外BREEZE 也可以参考(ODATA)

其中:$http, 与 Restangular返回 promise。 

      promise 是一种以函数来作为then属性值的对象:

      then(fulfilledHandler, errorHandler, progressHandler)

     添加fulfilledHandler、errorHandler和progressHandler后,promise对象就构成了。 fulfilledHandler是在promise被装载数据的时候调用,errorHandler在promise失败的时候调 用,progressHandler则在progress事件触发的时候调用。所有的参数都是可选的,并且非function的参数都会被忽略掉。有时 progressHandler并不只是一个可选参数,但是progress事件确是纯粹的可选参数而已。promise模式的实现者并不一定要每次都调 用progressHandler(因为它可以被忽略掉),只有这个参数传入的时候才会发生调用。

    这个方法在fulfilledHandler或者errorHandler回调完成之后,得返回一个新的promise对象。这样一 来,promise操作就可以形成链式调用。回调handler的返回值是一个promise对象。如果回调抛出异常,这个返回的promise对象就会 把状态设为失败。 

==========================

使用 angulasrjs 的内置服务 $http ,在控制器中获取服务端数据 示例:

var app = angular.module(‘MetronicApp‘);

app.controller(‘appCtrl‘, function appCtrl($scope, $http,Restangular) {

   (function getUsers() {
        var webapi = "/Api/Userss";    //对本程序所在服务器访问,省略DNS;对它域的访问,需要全地址。
         $http.get(webapi )               // 获取相对地址的数据
             .success(function (response, status, headers, config) {    //成功时的处理
                  var data = new wijmo.collections.ObservableArray(response);
                   $scope.users = new wijmo.collections.CollectionView(data);
             })
             .error(function (response, status, headers, config) {       //失败时的处理,status  代表状态码 403等!
                      console.log(‘请求错误:‘ + webapi );
                      alert(page);
             });

         });
     })();

}

============

同样的服务端访问使用:Restangular

var app = angular.module(‘MetronicApp‘);

app.config(function (RestangularProvider) {        //配置基础路由路径
      RestangularProvider.setBaseUrl(‘/Api‘);
});

app.controller(‘appCtrl‘, function appCtrl($scope, Restangular) {     //注入Restangular 服务

     (function getUsers() {     //此立即执行的函数,可以省略。。。

           Restangular.one("Users").getList().then(function (data) {

                  $scope.users = new wijmo.collections.CollectionView(data);
            }, function(err){
                 //console.log(‘请求错误:‘ + err);
                  alert("请求错误-----OKKKKKK!");
          });


      })();

}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。