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!");
});
})();
}