У меня есть интересная проблема с угловым формально. Я пытаюсь использовать тег «model», как показано ниже, потому что моя модель не плоская.Угловая форма вложенной модели не обновляется
{
'key': 'last',
'model': 'model.name',
'templateOptions: {}
}
Однако я не могу обновить модель в чистом виде. Просто замена модели или даже model.name соответствующей моделью, содержащей обновленное значение, не приводит к обновлению модели.
var newModel = {
name: {
first: 'Gandalf',
last: 'The White'
}
};
self.model = {
name: {
first: 'Gandalf',
last: 'The Grey'
}
};
function setNewLastName() {
self.model = newModel;
}
setNewLastName();
Однако, если я перехожу к определенному свойству, он работает должным образом.
self.model.name.last = self.newModel.name.last;
Здесь приведена ссылка на JSBin, где значение обновляется с использованием метода развертки непосредственно выше. Drill-down JSBin
Другой JSBin, который пытается обновить модель, назначив новую модель, которая не обновляется. Assign Model JSBin
Кто-нибудь сталкивался с этой проблемой или вы можете видеть, где я делаю что-то неправильно?
Это работает, но это не решает проблема, с которой предназначен атрибут модели. Теперь вам нужно создать другой шаблон для каждого n числа вложенных свойств или реализовать переключатель или скрыть шоу. – tuckerjt07
Вложенные свойства лучше достигаются с помощью полевых групп, позвольте мне обновить пример –
Это тоже работает, но это все равно хак/обходной путь. В соответствии с формальной документацией то, что я делаю, является предполагаемым вариантом использования «модели». Также очень нечисто, чтобы n слоев fieldGroups обертывали ваши поля, где некоторые могут быть двумя глубокими, а другие пять. – tuckerjt07