2015-02-09 2 views
0

Здравствуйте, я создаю приложение, которое просматривает данные из базы данных. У меня есть форма, которая загружает эту информацию с помощью ng-model в поля ввода. У пользователя есть возможность изменить эти значения.AngularJS update ng-model if value = true

Однако я не хочу, чтобы значения в обзоре обновлялись, когда пользователь меняет значение в полях ввода. Только после того, как форма была отправлена, я хочу увидеть изменения.

У меня есть этот HTML на обзорном стороне

<dt>COMPANY</dt> 
<dd>{{client.company}}</dd> 
<dt>NAME</dt> 
<dd>{{client.firstname}} {{client.lastname}}</dd> 

и форма

<p>Company</p><input type="text" name="ciCompany" class="pinfo" ng-model-options="{ updateOn: 'value = true' }" required ng-model="client[0].company"> 
<p>First Name</p><input type="text" name="ciFirstName" class="pinfo" ng-model-options="{ updateOn: 'value = true' }" required ng-model="client[0].firstname"> 
<p>Last Name</p><input type="text" name="ciLastName" class="pinfo" ng-model-options="{ updateOn: 'value = true' }" required ng-model="client[0].lastname"> 

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

Благодаря

ответ

0

Вы можете использовать angular.copy сделать это:

$scope.clients = {}; // your array 
$scope.clientsCopy = angular.copy($scope.clients); 

<dt>COMPANY</dt> 
<dd>{{clientsCopy.company}}</dd> 
<dt>NAME</dt> 
<dd>{{clientsCopy.firstname}} {{clientsCopy.lastname}}</dd> 

<form ng-submit="userSubmit()"> 
    <p>Company</p><input type="text" required ng-model="clients[0].company"> 
</form> 

Затем вы можете использовать onSubmit обновить новые значения:

$scope.userSubmit = function() { 
    $scope.clientsCopy = $scope.clients; 
} 

Вы также можете использовать _.extends или _.merge, если вы используете подчеркивание или lodash.

+0

Спасибо! Это то, что я искал. –

0

На отправки формы Вы должны использовать angular.copy метод для копирования данных, как это:

$scope.client = angular.copy(clients[0]);

Пожалуйста, обратитесь к следующему: reference link

Смежные вопросы