角度引导模态掩码形式

2024-03-11

我正在尝试在范围内获得角度形式来验证验证等。

基本情况

假设我有以下 HTML:

 <body ng-controller='MyAwesomeController'>
   <form name="fooForm">
     <textarea ng-model="reason" required=""></textarea>
   </form>
   <div class='btn btn-primary' ng-click="submit()" ng-class="{'btn-disabled': true}">Awesome Submit Button</div>
 </body>

以及以下控制器

 angular.module('MyAwesomeController', '$scope', function(scope){
   scope.submit = function(){
      console.debug(scope)
   }
 })

这将起作用,并且经过检查,scope将包含一个fooForm key.

现在让我们说我将一个 Angular ui Bootstrap 模式引入到混合中,如下所示:

破案

 <body ng-controller="AwesomeParentController">
   <div class="btn btn-primary" ng-click="open()">Open the Modal</div>
 </body>

具有以下两个控制器:

.controller('AwesomeParentController', ['$scope', '$modal', function(scope, modal){
   scope.open = function(){
     options = {
       windowClass: 'modal discontinue-modal',
       templateUrl: 'modal.html',
       controller: 'AwesomeModalController'
     }
     modalInstance = modal.open(options)

     modalInstance.result.then(function(){
       console.debug("result!")
     })
   }  
 }])

 .controller("AwesomeModalController", ['$scope', '$modalInstance', function(scope, modalInstance){
   scope.submit = function(){
     console.debug(scope)
   }  
 }])

具有以下 modal.html:

<form name="fooForm">
  <textarea ng-model="reason" required=""></textarea>
</form>
<div class='btn btn-primary' ng-click="submit()">Awesome Submit Button</div>

单击第一个按钮时,将打开一个模式,单击第二个按钮时将打印一个scope,其中不包含fooForm, 相当fooForm驻留在scope.$$childTail

Plunkr: http://embed.plnkr.co/jFGU0teIbL3kUXdyTPxR/preview http://embed.plnkr.co/jFGU0teIbL3kUXdyTPxR/preview

可能的修复

<form name="fooForm">
  <div ng-controller ="JankyFormController">
    <textarea ng-model="reason" required=""></textarea>
    <div class='btn btn-primary' ng-click="submit()">Awesome Submit Button</div>  
  </div>
</form>

.controller('JankyFormController', ['$scope', function(scope){
  scope.models['fooForm'] = scope.fooForm
}])

Plunkr: http://embed.plnkr.co/BAZFbS7hFRhHm8DqOpQy/preview http://embed.plnkr.co/BAZFbS7hFRhHm8DqOpQy/preview

为什么表格被屏蔽?无需创建嵌套子控制器即可获得它的干净方法是什么?如果我想绑定怎么办ng-class表格的有效性?我现在是否必须围绕($$childTail).fooForm.$valid?


Update:Angular ui-bootstrap 0.12.0 修复了问题 - 嵌入范围变得与控制器的范围相同,不需要$parent.。只需升级即可。

0.12.0之前:

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

这是已知问题:https://github.com/angular-ui/bootstrap/issues/969 https://github.com/angular-ui/bootstrap/issues/969

我提出了对我有用的快速解决方法,使用 Angular 1.2.16:

<form name="$parent.userForm">

The userForm在模态控制器中创建并可用$scope。感谢范围继承userForm标记中的访问保持不变。

<div ng-class="{'has-error': userForm.email.$invalid}"}>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

角度引导模态掩码形式 的相关文章

随机推荐

  • 如何使用不同的pathdef同时运行两个MATLAB实例?

    我正在开发自己的脑成像工具箱 在 MATLAB SPM8 下运行 同时我有一个git clone我自己的工具箱代码目录 本地 git 存储库 的版本用于运行分析 此设置是根据 Kevin Reid 的回答创建的如何使用 git 同时处理多个
  • 尝试从 Windows 服务读取 IIS 站点的 web.config 文件

    我正在尝试寻找一个特别的web config安装在本地 IIS 上的网站的文件 我通过 Windows 服务进行此搜索 我执行以下操作 using ServerManager serverManager new ServerManager
  • Android 无法正确连接 MySQL 数据库

    我正在尝试了解从 MySQL 服务器发送和接收数据的 Android 应用程序的基础知识 我的实现与本学习示例无关 这是到目前为止的代码 package com davekelley polling import java io Buffe
  • 在 DQL 中加入并计数

    我有一个 MySQL 命令 但在 DQL 中找不到等效命令 我正在尝试获取评论最多的帖子列表 这是 MySQL 命令 SELECT posts id COUNT comments id AS num FROM posts LEFT JOIN
  • HP 强化 XML 外部实体注入

    Hp fortify 通过以下代码向我展示了 XML 外部实体注入 StringBuilder sb new StringBuilder StringWriter stringWriter new StringWriter sb xmlSe
  • 在android上显示圆形进度条(实心圆圈)

    如何在android上显示填充的圆形进度条 进度条应该像圆圈一样填充 而不是像环一样 并且应该具有可自定义的功能 例如动画计时动画插值器等 该项目有助于在 android 5 棒棒糖 及更高版本上显示一个简单的填充圆形进度条 它是高度可定制
  • 限制Socket io连接数

    是否可以限制nodejs中的套接字io连接数 我知道可以通过更改服务器 TCP 设置来配置限制 但我正在寻找一种在 nodejs 中执行此操作的方法 你可以很容易地实现它 var connectionsLimit 1 io on conne
  • Django/python 和 Apache Solr:pysolr 还是 solrpy?

    这个论坛是全新的 这是我的第一篇文章 在工作中 我们正在启动一个使用 Apache Solr 的项目 我负责前端系统 基于 Django 我们的 solr 数据库与任何其他数据库引擎或任何模型类都不相关 因此 Haystack 对我们不利
  • 使用node-http-proxy的默认路由?

    我想做一个简单的 Node js 反向代理来托管多个 Node JS 应用程序以及同一端口 80 上的 apache 服务器 所以我找到了这个示例here http nerdpress org 2012 04 20 hosting mult
  • 包括_str!设置“字符串文字”路径

    我必须运送一个json and a toml我的 Rust 二进制文件中的文件 它是一个独立的应用程序 人们不想在运行时传递配置文件 include str 做我想做的事 我可以写 static SETTINGS FILE STR str
  • 如何使用 ZeroMQ 处理原始 UDP?

    我有一个客户 我无法更改其代码 但我想使用 重新 编写ZeroMQ插座 客户使用原始TCP和原始的UDP插座 我知道我可以使用ZMQ ROUTER RAW对于生的TCP插座 但是原始的怎么样 UDP数据流 ZeroMQ 中对 UDP 的支持
  • CSS 不适用于 xhtml2pdf Django

    我正在尝试改进由以下人员创建的生成的 PDFxhtml2pdf和一些CSS style in my Django Project 我想例如justify a text block 但显然 它不起作用 我不知道为什么 我正在阅读大量有关该库的
  • 使用 POST 创建 HTML 表格

    我正在尝试创建一个网页 该网页接受用户输入 将其发布到创建页面 然后创建另一个在 html 表中显示数据的网页 我正在使用 file put contents 创建网页 每当我尝试包含一个循环来获取要输出的 3 个 td 的内容时 我都会收
  • “e 是 65537 (0x10001)”是什么意思?

    我想知道输出是什么e is 65537 0x10001 方法 它发生在 RSA 密钥生成过程中 使用openssl genrsa 我知道这些点意味着该数字已经通过了探针除法 并且在通过米勒 拉宾测试后打印出了加号 但我无法弄清楚 RSA 密
  • 循环和数组格式

    我刚刚完成了我必须为课堂编写的程序 该程序应该从用户那里获取 ID 和 日期 的输入 我的老师要求我们在这两个部分中放置一个循环 以防用户没有输入正确的 ID 日期 我已经将程序编写到可以接受输入的位置 但它无法区分输入是否有效 并将继续执
  • 如何读取等待 dropzone 的文件列表并按顺序上传

    我正在使用 拖放 上传多个图像dropzone js 在这里我保留了autoProcessQueue to false进行自定义上传 现在我正在寻找如何获取我选择上传的队列列表 原因是我需要一个接一个地上传文件 以便保持顺序 我可以保留选择
  • git 添加 .给我总线错误(核心转储)

    我正在使用 ubuntu 并尝试将我的代码放在 github 上 但是当我尝试使用 git add 时 命令时 我收到错误 总线错误 核心转储 joannah joannah Inspiron N5040 Macerdo git init
  • 图 Api - 401 未经授权

    刚刚开始使用 graph office API 哇 这是一个雷区 只是想知道是否有人可以给我任何建议 当我尝试联系时收到 401https graph microsoft com beta me files https graph micr
  • 如何将资产文件夹中的文件路径传递给文件(字符串路径)? [复制]

    这个问题在这里已经有答案了 可能的重复 Android 如何确定资产中特定文件的绝对路径 https stackoverflow com questions 4744169 android how to determine the abso
  • 角度引导模态掩码形式

    我正在尝试在范围内获得角度形式来验证验证等 基本情况 假设我有以下 HTML