Я начинаю с угловатым, и я хочу получить http получить ответ URL (http://myurl.com), чтобы сделать после некоторых манипуляций.
Я проверяю это, но результата нет:/
var app = angular.module('plunker', []);
app.factory('myService', function($http) {
return {
async: function() {
return $http.get('http://apibuilder-apidiscovery.kermit.rd.francetelecom.fr/infrastructures/16857');
}
};
});
app.controller('MainCtrl', function( myService,$scope) {
myService.async().then(function(d) { //2. so you can use .then()
$scope.data = d;
});
});
HTML
<body>
<div ng-controller="MainCtrl">
Data: {{data}}<br>
</div>
</body>
Огромное спасибо.
Назначение данных должно быть $scope.data = d.data;
контроллер
app.controller('MainCtrl', function( myService,$scope) {
myService.async().then(function(d) { //2. so you can use .then()
$scope.data = d.data;
}, function(error){
console.log('Error occured');
});
});
Также обратите внимание, что если вы пытаетесь сделать вызов во внешний домен,
CORS
должен быть включен. Кроме того, вам может потребоваться передать заголовки автозавершения в запросе.
script.js
var app = angular.module('plunker', []);
app.factory('myService', function($http,$q) {
var myService = {
async : async,
};
return myService;
function async() {
var d = $q.defer();
$http({
method: 'GET',
url: 'http://apibuilder-apidiscovery.kermit.rd.francetelecom.fr/infrastructures/16857',
headers: {
"Content-Type": "text/plain",
// you can add headers here
}
}).then(function(reply) {
d.resolve(reply.data);
}, function(error) {
d.reject(error.data);
});
return d.promise;
}
});
app.controller('MainCtrl', function(myService, $scope) {
myService.async()
.then(function(result) {
$scope.data = result;
});
});
и индексный файл,
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="script.js"></script>
</head>
<body ng-app="plunker" ng-controller="MainCtrl">
Data: {{data}}<br>
</body>
</html>