Как отобразить Html-форму данных, полученную в качестве ответа

#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 (включая эти небольшие изменения).