В моем контроллере меню у меня есть функция сохранения меню. Переменная $ scope.menu содержит объект, который представляет мои данные меню. Функция saveMenu отправляет вызов Ajax в конечную точку REST API, а затем получает обновленное меню в ответ. Проблема в том, что когда я присваиваю $ scope.menu ответу все мои привязки данных в разрыве шаблона HTML. Вдруг все данные меню исчезают.
Контроллер код.
$scope.saveMenu = function() {
var menu = $scope.createJsonMenuRequest();
var method = "PUT";
var url = FoodUrls.foodAPI + "menus/" + menu.id;
var req = {
method: method,
url: url,
headers: {
"Content-Type": "application/json"
},
data: angular.toJson(menu)
};
$http(req).success(function(data) {
$scope.menu = $.extend(true, {}, data);
});
};
Функция createJsonMenuRequest просто проходит через меню и удаляет некоторые свойства из копии, что API не нравится.
Почему привязка к шаблону HTML прерывается?
Обновлено
Перед оператором присваивания в функции успеха, то $ scope.menu выглядит примерно так.
{
name: "My Menu",
sections: [
{ $$hashKey: "object:17", id: 1, name: "blarg"}
]
}
Впоследствии это выглядит ...
{
name: "My Menu",
sections: [
{ id: 1, name: "blarg-edited"}
]
}
Он теряет $$ HASHKEYS, что Угловая ставит там, когда меню изначально создается. Не знаю, каково значение этого.
Если все ваши связывающим перерыва, то наверняка у вас есть ошибка в консоли. Вы проверили, что это такое? –
Вы подтвердили, что получаете требуемое значение из своего ajax requset? Вы пробовали использовать функцию увеличения углов? [https://docs.angularjs.org/api/ng/function/angular.extend](https://docs.angularjs.org/api/ng/function/angular.extend) – Erex
@MatthewGreen Нет ошибок. Мое подозрение в том, что происходит, состоит в том, что когда все привязки, которые относятся к вещам, таким как menu.sections, разбиваются, когда эти menu.sections заменяются новым объектом. Объект, который ng-repeat первоначально ссылался, больше не существует. То, что я не знаю, как сделать, - заставить Angular вернуться и перестроить ссылки, используя новый объект. –