Обновить массив из View - PullRequest
       1

Обновить массив из View

0 голосов
/ 11 сентября 2018

У меня есть массив, где мне нужно обновить данные, используя поле ввода.Я использую ng-repeat, чтобы показать поля ввода по количеству элементов в массиве.

$scope.textvalue =  ["center", "80mm", "retain", "22pt", "bold", "140%", "18pt", "bold", "140%", "36pt", "11pt", "bold", "normal", "absolute", "211mm", "20mm", "20mm", "20mm", "center", undefined, undefined, "end-on-even", "even-page", "9pt"] 

Итак, у меня есть 24 поля в соответствии с элементами массива, используя ng-repeat="x in textvalue track by $index".

Как мне обновить определенные элементы из поля и получить тот же массив $scope.textvalue с обновленнымизначение ?Я не очень знаком с Angular JS.

Пример: - из второго поля т.е.если я обновлю «80 мм» до «90 мм», он будет отражен обратно в массиве.

1 Ответ

0 голосов
/ 11 сентября 2018

Я не знаю, как вы хотите обновить значения, но вы можете привязать входные данные ng-model к textvalue[$index]:

<div ng-repeat="x in textvalue track by $index">
  <input ng-model="textvalue[$index]">
</div>

Обновит массив при изменении значений в полях ввода.Посмотрите, как это работает здесь -> http://plnkr.co/edit/f5lBpPjXMbvjOMuyPRPV?p=preview


Вот другой способ без ng-model.Если вы хотите, чтобы значения обновлялись до +1 при нажатии на кнопку:

<div ng-repeat="x in textvalue track by $index">
  <button ng-click="update($index)">
    {{ x }}
  </button>  
</div>
$scope.update = function(index) {
  var value = $scope.textvalue[index];
  var intValue = parseInt(value);
  var strValue = value.replace(/[^a-z\%]/g, '');
  if (!intValue || !strValue) return
  $scope.textvalue[index] = (intValue+1)+strValue
}

http://plnkr.co/edit/3Vc1q2TtzsTJPw7BixkM?p=preview

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