AngularJS редактировать и сохранять значения внутри ng-repeat

0

Я работаю над своим первым угловым приложением, и я не знаю, как лучше всего справиться с этой проблемой.

У меня длинный иерархический json, потому что таблицы базы данных похожи на пирамиду, похоже на это: Изображение 174551

Я очень хорошо представляю представление, используя ng-repeat, я хочу иметь возможность редактировать последние строки последней таблицы, которые соответствуют последнему уровню JSON.

Для этого я внедрил редактируемый модальный режим, который отлично работает, он отлично сохраняет и обновляет базу данных, проблема в том, что для просмотра обновленного значения мне нужно обновить страницу, теряющую положение прокрутки и сильно скомбинировав аккордеоны.

Изображения аккордеонов:

Изображение 174551

Когда я нажимаю значок редактирования, в хранилище обещано сохранение $ scope.objEdit = {}; объект и запускает модальный, который связан с этим объектом с помощью ng-модели.

Поэтому я думаю, что следующим шагом является то, что когда модальный закрыт, я должен переопределить старый объект, помещенный в переменную $ scope, которая содержит весь json для отредактированного, но я не уверен, как это сделать.

Я был бы признателен за вашу помощь в изучении стандартного способа сделать это, тх-товарищи.

Я просто решил это, я использовал подобную процедуру для oen, которую @AnikIslamAbhi заговорил, в скрипте, которую @Harshad поделился с комментариями, решен, но у меня есть гораздо более сложный json для обработки, мне пришлось идти с такими вещами, как те, для получения индекса всех уровней json:

$scope.positionEvaluacion = $scope.dataEvaluacion.indexOf(args.levelOne);
$scope.positionAsignaturaevaluacion = $scope.dataEvaluacion[$scope.positionEvaluacion].asignaturaevaluacion.indexOf(args.levelTwo);
$scope.positionTarea = $scope.dataEvaluacion[$scope.positionEvaluacion].asignaturaevaluacion[$scope.positionAsignaturaevaluacion].tarea.indexOf(args.levelThree);

И после этого переопределите этот объект с отредактированным:

$scope.dataEvaluacion[$scope.positionEvaluacion].asignaturaevaluacion[$scope.positionAsignaturaevaluacion].tarea[$scope.positionTarea] = $scope.objEdit;
  • 0
    Можете ли вы показать использовать больше кода? Как вы устанавливаете новые данные?
  • 0
    Вы пробовали что-нибудь? Так что мы можем легко помочь
Показать ещё 3 комментария
Теги:
frontend

1 ответ

1
Лучший ответ

Вы можете попробовать эту процедуру

  1. Передайте выбранный объект при редактировании клика с пользовательского интерфейса на контроллер.
  2. Клонировать и передать этот объект модальному.
  3. OnModal закрывает модальный объект обратно в пользовательский интерфейс.
  4. Скопировать значения модального объекта в предыдущий выбранный объект

Как это

for(var i in modalObj){
  selectedObj[i]=modalObj[i];
}
  • 0
    Когда я нажимаю на иконку редактирования, обещания сохраняются в $ scope.objEdit = {}; объект и запускает модал, который связан с этим объектом с помощью ng-модели. Поэтому я думаю, что следующий шаг заключается в том, что когда модальное окно закрыто, мне нужно переопределить старый объект для этого в переменной $ scope, которая содержит весь json, но я не уверен, как это сделать.
  • 0
    @ RubénMartín Можете ли вы предоставить демоверсию в jsfiddle?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню