#javascript #angularjs
Вопрос:
Я использую один Api, который возвращает html в ответ на один ключ, я хочу получить из него данные, я использую AngularJS, как я могу использовать этот тип ответа и получить из него желаемое значение ?
Ответ-
{
"id": 123,
"subject": "Don’t Give Up",
"body": "<strong>Subject: </strong>Don’t Give Up <br /><strong>From: </strong>"Jhon Doe"<br /><strong>To: </strong><a href="https://example.com/index.php/"><span>Jhon Doe</span></a> amp;<jhon@doe.comamp;><br /><br /><hr /><p style="text-align:center;"><img src="https://example.com/assets/img/mylogo.png" style="width:120px;" alt="mylogo.png" /></p>n<br /><span style="font-family:arial, helvetica, sans-serif;">Hi Jhon,<br /><br />nDon’t give up! This is the main body of the mail which I want to display how can I take that body out of here and display it in the browser Please Help :( </span><br /><br />Click!n<p style="text-align:center;"><a href="https://somsite.com"><img alt="button.png" src="https://example.com/index.php" width="250" /></a> </p>n started!<br /><br /><span style="font-family:arial, helvetica, sans-serif;">Thanks!<br /><br />nJhon Doe</span><img src="https://example.com/index.php/" alt=" />",
"firstName": "Jhon",
"...":"...",
}
Это в основном электронное письмо, которое я получаю в качестве ответа, я просто хочу отобразить текст этого письма, с которого оно начинается Hi Jhon
. Кто-нибудь, пожалуйста, помогите мне, как я могу это сделать в AngularJS
Ответ №1:
За это вы будете:
- Используйте
$http
(или любую альтернативу). Стандартный способ для этого-создание сервиса. - Он вернет обещание (так что вам придется использовать
.then
и.catch
- Кроме того, примите во внимание, что ответ-это весь объект. Поэтому, когда вы попытаетесь получить тело/данные из ответа, вам придется это сделать
response.data
Я только что создал этот пример: https://plnkr.co/edit/FNxEeVZti6D1wmLe?preview
В вашем конкретном случае у вас будет что-то вроде:
.service('EmailAPI', function($http) {
return ({
getEmailById: function (id) {
return $http({
method: 'GET',
url: 'YOURAPI/YOURROUTEFOREMAIL'
headers: { 'Content-Type': 'application/json' }
});
}
})
})
В контроллере вам придется сделать:
EmailAPI.getEmailById('EMAILID').then(function (response) {
$scope.email = response.data;
});
Наконец, в представлении вам придется сделать:
<div>
{{email.subject}}
</div>
Комментарии:
1. Спасибо за помощь, значит, мне нужно получить такой api ? но проблема здесь в том, что я работаю над большим проектом, в котором ответ api находится в обычном json для остальных полей, я не уверен, смогу ли я это изменить, а также для вызова api, мы используем jQuery, я должен работать только над этим конкретным ответом 🙁 извините, если я что-то не понял..
2. В этом случае вы также можете вызвать API с помощью jquery, что не имеет большого значения (я имею в виду любую альтернативу). Ответ заключается в том, чтобы принять во внимание JSON в качестве ответа от API. Этот пример должен работать с вашим проектом, API и jQuery (включая эти небольшие изменения).