AngularJS редактировать массив JSON по ссылке

0

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

<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>

<body ng-app="tstApp" ng-controller="tstCtrl">

<div>
    <select size="2" style="width: 100px"
        ng-model="selected"
        ng-options="i as i.name for i in items track by i.name"
    />
</div>

<div>
    <input type="text" name="descr" value="{{selected.descr}}"/><br/>
    <input type="text" name="ref" value="{{selected.ref}}"/><br/>
</div>

<script src="test.js"></script>

</body>
</html>

и это JavaScript

var tstapp = angular.module('tstApp', [])
tstapp.controller('tstCtrl', function($scope) {
    $scope.items = [
                {
                        "name" : "ITEM1",
                        "descr" : "This is item1",
                        "ref" : "Reference1"
                },
                {
                        "name" : "ITEM2",
                        "descr" : "This is item2",
                        "ref" : "Reference2"
                }
    ];
    $scope.selected = $scope.items[0];
});

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

Теги:

1 ответ

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

Вы должны привязать его как ng-модель, чтобы получить изменения

Как это

 <input type="text" name="descr" ng-model="selected.descr"/>

JSFIDDLE

  • 2
    Правильно, вот демоверсия jsfiddle.net/0wpoe3gj
  • 0
    @JayantPatil спасибо, сделай для скрипки
Показать ещё 2 комментария

Ещё вопросы

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