javascript - 从 Controller 访问 Angular Bootstrap 模式形式

标签 javascript angularjs twitter-bootstrap

我正在尝试从模态 Controller ( Plunkr ) 访问表单,但 myForm 似乎无法访问。如何获得提醒上类的电话:

angular.module('plunker', ['ui.bootstrap']);
var ModalDemoCtrl = function ($scope, $modal, $log) {
  $scope.open = function () {
    var modalInstance = $modal.open({
      templateUrl: 'myModalContent.html',
      controller: ModalInstanceCtrl          
    });       
  };
};

var ModalInstanceCtrl = function ($scope, $modalInstance) {
  $scope.submit = function() {
    // How to get this?
   alert($scope.myForm.$dirty);
  };

  $scope.ok = function () {
    $modalInstance.close();
  };

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

和模板:
<div ng-controller="ModalDemoCtrl">
    <script type="text/ng-template" id="myModalContent.html">
        <div class="modal-header">
            <h3>I'm a modal!</h3>
        </div>
        <div class="modal-body">
          <form name="myForm" novalidate>
          <input type="email" value="hello">
          </form>
        </div>
        <div class="modal-footer">
            <button class="btn btn-primary" ng-click="submit()">OK</button>
            <button class="btn btn-warning" ng-click="cancel()">Cancel</button>
        </div>
    </script>

    <button class="btn" ng-click="open()">Open me!</button>
    <div ng-show="selected">Selection from a modal: {{ selected }}</div>
</div>

最佳答案

Angular-UI 模态使用嵌入来附加模态内容,这意味着在模态中创建的任何新范围条目都是在子范围中创建的。这发生在表单指令中。

您可以尝试使用(Angular 1.2.16)将表单附加到父范围:

<form name="$parent.userForm">
userForm在 modal 的 Controller 中创建并可用 $scope .感谢范围继承 userForm访问在标记中保持不变。
<div ng-class="{'has-error': userForm.email.$invalid}"}>

关于javascript - 从 Controller 访问 Angular Bootstrap 模式形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20713633/

相关文章:

javascript - 如何禁用 MaterializeCSS 日期选择器中的特定日期

javascript - AngularJS 1.5.6 Controller 不工作

jquery - 如何在具有悬停效果时使两行中的 12 个 block 响应

javascript - 不使用框架制作网站

javascript - Angular js中的字符串到子字符串的转换

javascript - nw.js:如何构建文件对话框来打开文件?

javascript - 这部分代码如何能够修改看似在浏览器窗口之外的鼠标指针?

javascript - 如何在融合表中使用 queryText 获取行数结果?

javascript - 单独处理数组中的多个 promise

javascript - 根据 true 或 false word 更改表列的颜色