当前位置: 首页 > 面试题库 >

如何验证使用ng-repeat,ng-show(角度)动态创建的输入

满言
2023-03-14
问题内容

我有一个使用ng-
repeat创建的表。我想向表中的每个元素添加验证。问题在于每个输入单元格与其上方和下方的单元格名称相同。我试图使用该{{$index}}值来命名输入,但是尽管HTML中的字符串文字看起来正确,但现在可以正常工作。

到目前为止,这是我的代码

<tr ng-repeat="r in model.BSM ">
   <td>
      <input ng-model="r.QTY" class="span1" name="QTY{{$index}}" ng-pattern="/^[\d]*\.?[\d]*$/" required/>
      <span class="alert-error" ng-show="form.QTY{{$index}}.$error.pattern"><strong>Requires a number.</strong></span>
      <span class="alert-error" ng-show="form.QTY{{$index}}.$error.required"><strong>*Required</strong></span>
   </td>
</tr>

我试过{{}}从索引中删除from,但是那也不行。到目前为止,输入的验证属性可以正常工作,但是不会显示错误消息。

有人有什么建议吗?

编辑:
除了以下出色的答案之外,这是一篇博客文章,其中更详细地介绍了此问题:http : //www.thebhwgroup.com/blog/2014/08/angularjs-
html-form-design-part-2 /


问题答案:

AngularJS依靠输入名称来暴露验证错误。

不幸的是,到今天为止,不可能(不使用自定义指令)动态生成输入的名称。确实,检查输入文档,我们可以看到name属性仅接受字符串。

要解决“动态名称”问题, 您需要创建一个内部表单(请参阅 ng-
form

<div ng-repeat="social in formData.socials">
      <ng-form name="urlForm">
            <input type="url" name="socialUrl" ng-model="social.url">
            <span class="alert error" ng-show="urlForm.socialUrl.$error.url">URL error</span>
      </ng-form>
  </div>

另一种选择是为此编写一个自定义指令。

这是显示ngForm用法的jsFiddle:http
:
//jsfiddle.net/pkozlowski_opensource/XK2ZT/2/



 类似资料:
  • 问题内容: “活动”类的CSS来自引导程序。 因此,切换作品几乎是我想要的。我希望它类似于导航链接中的活动状态,但在我的示例中,它处理图像,因此需要担心url字符串等。 我尝试模拟此示例,但没有用(我尝试了相同的图像逻辑):ng-class突出显示基于ng- repeat的活动菜单项,如果有人能指出我正确的方向,我将不胜感激。:D 问题答案: 在您遇到的情况下,我要做的是在ng-repeat的父范

  • 问题内容: 我正在为将来的项目评估angularjs。我需要做的一件事情是通过选择适当的“页面”无线电输入来显示“频道”信息的不同页面。此外,还可以从一组“页面集”无线电输入中选择页面按钮的范围。 下面的工作示例具有一组32个通道,通过“设置”和“页面”无线电输入的组合选择了可见的通道组,总共提供2 * 4页,每个通道4个通道。 我的问题是如何使用创建页面/页面集单选输入。我已经尝试过以下方法:

  • 问题内容: 我花了一段时间试图找到一个优雅的解决方案,而我却找到了一个“可行”的解决方案,它感觉不是最简单或正确的做事方式。 所以,我的问题是…如何动态加载指令!在某些情况下,以下是我希望我能摆脱它的方式!除了模板加载之外,我没有包含路由或其他任何内容,而是为下面的控制器分配了ng- controller。 app.js template.html 任何人都可以提供的建议将不胜感激,如果我做任何明

  • 问题内容: 想象一个应用程序有一个“列表”页面,例如一个显示用户列表的表格。表的每一行上都有一个名为“编辑”的按钮,单击此按钮后,将在浏览器的右侧显示一个右面板,其中包含用于编辑该用户内容的表单。保存或关闭表单后,右侧面板消失。 当进入和退出编辑状态时,如何使Angular UI Router自动显示/隐藏右侧面板?默认情况下,将添加和删除模板,但是容器本身仍将存在于屏幕上。 在UI路由器的演示应

  • 问题内容: 我正在尝试在博客文章(尤其是ng禁用形式)的表单中使用角度表单验证。由于某些原因,我无法确定提交按钮没有被禁用,除非所有三个输入字段均有效,否则应该处于应有的状态。谢谢您的帮助。 这是我的博客模板 这是我的index.html 这是我的博客控制器 问题答案: 您在表单的每个字段中都缺少您。请记住,当你提到在当时任何形式的字段创建表单名对象中的额外的对象与特定的属性,然后考虑而表单验证一

  • 问题内容: 我想问你是否可以帮我这个忙。 我在这里用我的问题创建了一个jsfiddle 。我需要使用ng-model =“ my _ {{$ index}}”方式在ng-repeater中动态生成一些带有ng-model的输入。 在jsfiddle中,您可以看到一切正常,直到我尝试动态生成它为止。 HTML将是: 还有javascript … 你能给我个主意吗? 非常感谢。 问题答案: 它能解决您