Mr_Franke
@Mr_Franke
Front-end developer

Angular, метод $save(). Как не давать пересылать внутренние методы ангулара ($promise, $resolve e.t.c.) вместе с post?

Добрый день! Есть такой код:
$scope.invoice = Invoices.get({invoiceId: '1'})
$scope.invoice.test = 'test';
$scope.invoice.$save();


На сервер уходят не только данные, но и внутренние методы ангулара ($promise, details[1].$$hashKey, $resolved и т.д.).
Я же правильно понял работу с данными, или мой подход не верный и так сохранять нельзя? Кто-нибудь сталкивался с подобной проблемой и если сталкивался, как ее решил?
  • Вопрос задан
  • 3049 просмотров
Пригласить эксперта
Ответы на вопрос 1
По дефолту Angular перед отправкой данные прогоняет через функцию defaults.transformRequest.
Проверь может где-нибудь менял в конфигах $http эту функцию.
// transform outgoing request data
    transformRequest: [function(d) {
      return isObject(d) && !isFile(d) ? toJson(d) : d;
    }]

function toJson(obj, pretty) {
  if (typeof obj === 'undefined') return undefined;
  return JSON.stringify(obj, toJsonReplacer, pretty ? '  ' : null);
}

function toJsonReplacer(key, value) {
  var val = value;

  if (typeof key === 'string' && key.charAt(0) === '$') {
    val = undefined;
  } else if (isWindow(value)) {
    val = '$WINDOW';
  } else if (value &&  document === value) {
    val = '$DOCUMENT';
  } else if (isScope(value)) {
    val = '$SCOPE';
  }

  return val;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы