我需要通过Angular与REST Web服务进行通信,而我正在使用RestAngular但是我遇到了一些困难。我必须使用相同的URL,但GET& POST到两个不同的文件。我在app.js中的.config中设置了基本URL,而service.js是我通过RestangularConfigurer设置其他URL的地方。配置中的BaseURL附加了一个查询字符串。服务中的第二个URL没有。我想从配置中的BaseURL获取GET并从输入POST到Factory。以下是我的代码
的示例'use strict';
angular
.module('testApp', [
'ngAnimate',
'ngCookies',
'ngResource',
'ngRoute',
'ngSanitize',
'ngTouch',
'ui.bootstrap',
'ngGrid',
'google-maps',
'ngMessages',
'restangular'
])
.config(function (RestangularProvider, $routeProvider) {
RestangularProvider.setBaseUrl('http://dev.domain.com:9005/question-ws.htm?&areacode=215');
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
});
'use strict';
angular.module('testApp')
.factory('NextRestangular', function($http, $sce, Restangular){
return Restangular.withConfig(function(RestangularConfigurer) {
RestangularConfigurer.setBaseUrl('http://dev.domain.com:9005/next-question-ws.htm');
});
});
'use strict';
angular.module('testApp')
.controller('ScreenCtrl', function ($scope, Restangular, NextRestangular) {
Restangular.all().getList();
NextRestangular.all().getList();
});
我似乎无法从Restangular获取,我无法POST到NextRestangular。文件结构能否支持这个?我是不是错了?
答案 0 :(得分:1)
Restangular是一个处理Rest API Restful Resources的服务。
您网址中的.htm让我相信响应不是JSON。如果是这样的话,我不相信Restangular会对你有用。我建议查看ngResource甚至$ http。如果您的回复是JSON,则以下内容可帮助您顺利开展。
在此示例中,baseUrl应为" http://dev.domain.com:9005"。
RestangularProvider.setBaseUrl('http://dev.domain.com:9005');
之前我没有使用setRequestSuffix,但这可能会让你也拥有.htm。
RestangularProvider.setRequestSuffix('.htm');
然后你的API调用应该是这样的。
Restangular.all('next-question-ws').get({areacode: 215});
Restangular.all('next-question-ws').post(
// JSON Payload here.
});