AngularJS 如果值 = true 则更新 ng-model
AngularJS update ng-model if value = true
您好,我正在构建一个概览数据库数据的应用程序。我有一个表单,它使用 ng-model 将该信息加载到输入字段中,用户可以选择更改这些值。
但是,当用户更改输入字段中的值时,我不希望概览上的值实时更新。只有在提交表单后我才想看到更改。
我在概览方面有这个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">
我不知道使用 ng-model-options 是否是正确的方法。但从逻辑上讲,这就是我希望它工作的方式。但事实并非如此。
谢谢
您可以使用 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;
}
如果您使用下划线或 lodash,您也可以使用 _.extends 或 _.merge。
在表单提交时您必须使用 angular.copy 方法来复制您的数据,如下所示:
$scope.client = angular.copy(clients[0]);
请参考:reference link
您好,我正在构建一个概览数据库数据的应用程序。我有一个表单,它使用 ng-model 将该信息加载到输入字段中,用户可以选择更改这些值。
但是,当用户更改输入字段中的值时,我不希望概览上的值实时更新。只有在提交表单后我才想看到更改。
我在概览方面有这个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">
我不知道使用 ng-model-options 是否是正确的方法。但从逻辑上讲,这就是我希望它工作的方式。但事实并非如此。
谢谢
您可以使用 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;
}
如果您使用下划线或 lodash,您也可以使用 _.extends 或 _.merge。
在表单提交时您必须使用 angular.copy 方法来复制您的数据,如下所示:
$scope.client = angular.copy(clients[0]);
请参考:reference link