我正在创建一个模态对话框,并尝试在关闭对话框时读回这些字段,但是在编辑输入时,输入字段的ng-model设置为undefined。使用Plunk,如果单击对话框按钮,然后在不修改文本字段的情况下按“确定”,它将显示“ blah”。但是,如果您完全修改了文本输入,那么将不会显示任何内容。

对话框模板为:



  <script type="text/ng-template" id="simpleModal.html">
    <div class="modal-header">
      <h3 class="modal-title">Simple Modal</h3>
    </div>
    <div class="modal-body">
      <div class="form-group">
        <label for="emailInput">Email</label>
        <input id="emailInput" type="email" class="form-control" ng-model="user.email">
      </div>
    </div>
    <div class="modal-footer">
      <button class="btn" type="button" ng-click="ok()">Ok</button>
    </div>
  </script>





以及模态对话框的控制器:



app.controller('SimpleModalController', function($scope, $uibModalInstance, $log) {

  $scope.user = {
    email: "blah"
  };

  $scope.ok = function() {
    $log.debug('simpleModal ok called ' + $scope.user.email);
    $uibModalInstance.close($scope.user.email);
  };

});





我已经看到了对https://stackoverflow.com/a/22768720/552936的引用,但是我已经更改了代码以反映这一点,并且尚未解决问题。

最佳答案

您已经在模态的输入字段中声明了输入type="email"

<input id="emailInput" type="email" class="form-control" ng-model="user.email">


如果根据电子邮件进行数据传递价值。像[email protected]

您可以检查数据中是否包含有效的电子邮件

的HTML

<form name="myForm">
  <input type="email" name="myEmail" model="myEmail" />
  <span>Valid Email {{myForm.myInput.$valid}}
</form>


PLUNKR

如果要传递任何字符串,则必须将其设为type="text"

10-08 08:56