我在模式视图中的输入字段有问题。
当我在输入字段中进行更改时,它将更新表列表,但是当我离开页面并返回表列表回到此页面时,更改消失了。

这是我的模态视图:

<form class="form-horizontal" name="editForm" novalidate>
<div class="modal-body">
<div class="form-group-sm has-feedback">
  <label class="control-label">Firstname</label>
  <input type="text"
         class="form-control"
         name="Fname"
         ng-model="selected.fname"
         ng-model-options="{updateOn: 'updateItem'}"
         ng-required="true"
         />
</div>
</div>
//the same input field for lastname
...
<div class="modal-footer">
  <button class="btn btn-default" ng-click="createItem(selected)" type="submit">Erstellen</button>
  <button class="btn btn-default" ng-click="updateItem(selected)"> Ändern</button>
  <button class="btn btn-default" ng-click="cancel()">Abbrechen</button>
</div>
</form>


模态Ctrl:

$scope.cancel = function () {
  $scope.editForm.$rollbackViewValue();
  $modalInstance.dismiss('cancel');
}

$scope.updateItem = function (updateItem) {
  CrudService.update(updateItem);
  $scope.ok();
}


原始服务:

...
update: function (updateItem) {
   updateItem.$update();
},
...


我仅看到带有一个输入字段和代码的$ rollbackViewValue()示例:$scope.myForm.inputName.$rollbackViewValue()但我有多个输入字段?

最佳答案

您应该通过表单名称调用$ rollbackViewValue():

 editForm.$rollbackViewValue()


在您的模板中调用它:

{{editForm.$rollbackViewValue.toString()}}


您将看到它实际上是如何工作的:

function () {
     forEach(controls, function(control) {
        control.$rollbackViewValue();
     });
}

08-15 15:24