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

验证嵌套形式的角度

颛孙喜
2023-03-14
问题内容

具有角形的这种普通(名称属性由服务器要求)形式,无法弄清楚如何使验证有效。我应该在ng-show =“ TODO”中添加什么

http://jsfiddle.net/Xk3VB/7/

<div ng-app>
  <form ng-init="variants = [{duration:10, price:100}, {duration:30, price:200}]">
    <div ng-repeat="variant in variants" ng-form="variant_form">
      <div>
        <label>Duration:</label>
        <input name="variants[{{$index}}][duration]" ng-model="variant.duration" required />
        <span ng-show="TODO">Duration required</span>
      </div>
      <div>
        <label>Price:</label>
        <input name="variants[{{$index}}][price]" ng-model="variant.price" />
        <span ng-show="TODO">Price required</span>
      </div>
    </div>
  </form>
</div>

ps:这只是一种形式,更复杂

谢谢


问题答案:

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

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

长话短说,您应该依靠ng-
form
来验证动态创建的输入。就像是 :

<div ng-repeat="variant in variants" >
  <ng-form name="innerForm">
     <div>
        <label>Duration:</label>
        <input name="duration" ng-model="variant.duration" required />
        <span ng-show="innerForm.duration.$error.required">Duration required</span>
    </div>
    <div>
        <label>Price:</label>
        <input name="price" ng-model="variant.price" required/>
        <span  ng-show="innerForm.price.$error.required">Price required</span>
    </div>
  </ng-form>

在这里工作

更新:根据您的服务器端要求,为什么不做这样的事情:

<input type="hidden" name="variants[{{$index}}][duration]" ng-model="variant.duration"/>
<input name="duration" ng-model="variant.duration" required />

隐藏的输入将是服务器读取的输入,而另一输入将用于执行客户端验证(此后被服务器丢弃)。这是一种破解,但应该可以。

PS:在实际提交表单之前,请确保您的表单有效。可以通过ng-
submit完成



 类似资料:
  • 问题内容: 使用flask式的微框架,我很难构建一个RequestParser可以验证嵌套资源的。假设期望的JSON资源格式为: 中的每个项目都对应一个对象: …然后使用如下形式创建一个: …但是你将如何验证其中MyObject每个字典的嵌套?或者,这是错误的方法吗? 与此对应的API MyObject本质上将每个对象视为对象文字,并且可能有一个或多个传递给服务;因此,在这种情况下,拼合资源格式将

  • 我正在对嵌套的Json使用Avro模式使用Apache Nifi验证记录。我对JSON中的字段有特殊问题。 架构: Json数据: 无效消息: 此FlowFile中的记录无效,原因如下:;以下1个字段的值类型与架构不匹配:[/test_attributes/nested_field] 我不明白这个信息。我想象Json是有效的,因此处理器不应该使处理器失效。我错过了什么? 编辑:*删除了示例JSON

  • 我想把验证放在角度6中。它应该包含字母数字字符。字母或数字,仅3到9位。如果是数字,则应以1开头。 任何人都可以帮助我进行这些验证吗?

  • 但是,我必须验证manager和operator的id是否有效,也就是说,我将验证user表中是否有匹配的id。 所以我想知道如何实现这种验证? 更新1:使用验证器

  • 我正在尝试创建一个定制的反应式表单验证,它允许我传递一个数据数组来检查字符串是否已经存在。我可以用一种方法进行验证,因此这将是一个表单级验证,但我无法让它在单个表单控件上工作。 这将在整个窗体上创建错误,而不仅仅是控件 自定义验证,允许我接收表单控件并根据传入的数组检查它。 这将仅在特定控件上创建错误 自定义验证,允许我只将数组作为Validators.compose[]的一部分 此订阅设置Arr

  • 下面是使用的json文件(tasks.json) 错误:com.intuit.karate.exception.KarateException:javascript评估失败:字符串,引用错误:第1行中未定义“字符串” 我尝试了多种方法,如:obj1:“#(^schema)”,obj1:“#对象schema” 但无法解决问题。