Как обновить область в форме Submit, когда значение ng-модели меняется?
Я создаю форму редактирования клиента и передаю объект из 30 пар ключ-значение. Затем я использую ng-repeat, чтобы заполнить поля ввода формы. Вся форма отображается красиво и с пропущенным ключом, значениями. Я также могу изменить значение любого поля ввода. Но когда я отправляю форму, она берет старый объект области, который я изначально передал в форму, оставляя позади мои изменения. Мне нужно отправить измененный объект сейчас. Как это сделать? Я искал много, но не могу найти решение этого.
var app = angular.module("customerModule", []);
app.controller('crudController', function($scope, $http) {
$scope.Customers = //object from Ap with almost 30 key,values
$scope.edit = function() {
console.log($scope.Customers);
//the above line prints the API called object where as I am editing the values of ng-model in my form. and I need the form submitted values
}
});
<div ng-app="customerModule" ng-controller="crudController">
<form name="as" ng-submit="edit()">
<ul>
<li ng-repeat="(key, val) in Customers " ng-hide="(key=='total' || key=='paid' || key=='customfields' || key=='owing')" ng-if="key!='customfields'">
<label class="label"> {{key}}</label> <input type="text" ng-model="val" />
</li>
<li ng-repeat="(key, val) in Customers.customfields">
<label class="label"> {{key}}</label> <input type="text" ng-model="val" />
</li>
<button type="submit"><i class="fa fa-plus-circle" aria-hidden="true"></i><span> Edit Customer</span></button>
<ul>
</form>
</div>
1 ответ
Решение
Использование ng-model="Customer[key]"
,
Вы используете локальную переменную val
ссылаясь на значение. Это в основном зависит от выполнения
var val = Custom['foo'];
val = 'newValue';
Это не изменит значение Custom['foo']
, право?
Но следующее будет:
Custom['foo'] = 'newValue';