Моя проблема довольно прямолинейна.Как изменить состояние вложенной формы формы на чтение только нажатием кнопки
Вещи, которые у меня есть.
- Форма (формально), которую я сделал с использованием данных (JSON), полученных от бэкэнда.
- Форма будет многоуровневой вложенной (в настоящее время ее два уровня вложены).
- Существует повторитель, связанный с каждым элементом вложенной формы, который будет добавлять другой элемент в форму при нажатии кнопки.
- В верхней части страницы будет кнопка, которая будет переключать состояние элементов формы на чтение только.
Проблема, что я столкнулся
- Когда я нажимаю кнопку, состояние элементов формы изменится на ReadOnly, за исключением тех, которые вложены.
То, что я хочу
--Когда я нажимаю кнопку, каждый элемент моей формы должен изменить свое состояние на ReadOnly, вложенный или нет.
Здесь находится контроллер ... Последовала ссылка JS-Bin.
app.controller('MainCtrl', function MainCtrl(formlyVersion) {
var vm = this;
vm.onSubmit = onSubmit;
vm.exampleTitle = 'Nested Repeating Section';
vm.options = {
formState: {
readOnly: true
}
};
init();
vm.originalFields = angular.copy(vm.fields);
function onSubmit() {
alert(JSON.stringify(vm.model), null, 2);
}
function init() {
vm.fields = [{
key: 'name',
type: 'input',
templateOptions: {
label: 'Name',
required: true,
minlength: 5,
maxlength: 25
}
}, {
key: 'description',
type: 'textarea',
templateOptions: {
label: 'Description',
rows: 5,
maxlength: 100
}
}, {
wrapper: 'panel',
templateOptions: {
label: 'Cars'
},
fieldGroup: [{
type: 'repeatSection',
key: 'cars',
templateOptions: {
btnText: '+',
fields: [{
wrapper: 'panel',
templateOptions: {
label: 'New car'
},
fieldGroup: [{
key: 'carname',
type: 'input',
templateOptions: {
label: 'Name',
required: true,
maxlength: 25
}
}, {
key: 'cardesc',
type: 'input',
templateOptions: {
label: 'Description',
maxlength: 50
}
}]
}]
}
}]
}];
}
});
http://jsbin.com/sunocaf/edit?html,js,output
Заранее спасибо
P.S. - Я привел пример с официального угловатого официального сайта.
Спасибо MattE за ответ. Хотя я не использовал свой путь, так как я смог заставить его работать около месяца назад. Я собираюсь опубликовать решение, которое я использовал. Еще раз спасибо ... Привет! –