2015-07-17 3 views
1

Я отправляю некоторые данные по использования угловой factory и serviceКак изменить объект на строку javascript?

return service({cli: cli, customerType: appointmentType}).amend_customer({ 
      name: data.name, 
      surname: data.surname, 
      address: data.address, 
      postcode: data.postcode, 
      city: data.city 
     }).$promise; 

Я хочу отправить эти данные выше в виде строки не объект, какие-либо идеи, как подойти к этому. Я знаю $query.params и JSON.stringify(data) преобразует в строку, но мне нужно вернуть service вот так.

API возвращает в 400 - плохой запрос если данные в формате строки - это будет счастлив, я проверил через формат строки, и она работала

+0

Можете ли вы уточнить немного больше? Какой тест вы используете? Как вы тестируете (код)? – Tivie

+0

У меня уже есть модульные тесты для этого, но мне просто нужно знать, как преобразовать data.name и т. Д. И передать его как строку – user3684783

+0

Итак, вы хотите, чтобы data.name преобразовывалось в строку? – Werner

ответ

0

Вы можете выложить свой сервис так:

angular.module('app').factory("DataService", 
    function($http) { 
     return { 
      update: function(data) { 
       return $http({ 
        url: '/route', 
        method: "POST", 
        data: JSON.stringify({ 
         name: data.name, 
         surname: data.surname, 
         address: data.address, 
         postcode: data.postcode, 
         city: data.city 
        }), 
        headers: { 
         'Content-Type': 'application/json' 
        } 
       }).success(function(data, status, headers, config) { 
        console.log("Success!"); 
        //Do something with your data here. 
       }).error(function(data, status, headers, config) { 
        console.log("Error."); 
       }); 
      } 
     } 
    } 
); 

Тогда везде, где в вашем коде вы используете сервис, вы можете просто позвонить:

DataService.update(data); 

в этом по-прежнему будет возвращать обещание, как вам нужно, это просто более стандартный угловой формат. Кроме того, ваш сервис будет доступен в любом из ваших модулей, если вы его вводите.

Смежные вопросы