我正在使用我的角应用程序进行验证。我真正想做的是,当用户点击表单上的提交时,会显示一个弹出窗口,其中包含无效字段列表(例如'这些字段无效 - 名字 - 姓氏等&#39 )。真的很喜欢这样做,我的意思是我的老板强迫我这样做,所以我别无选择。
我实际上有一种方法可以通过读取角形式对象并获取$ invalid的所有字段的列表,在当前简单的输入上执行此操作。然后,我可以查看字段名称到可读文本的缓存映射(例如FirstName - >'名字')以生成错误字符串。
基本上我有一个传递角形式对象的方法,它以通用方式创建字符串(options.labels是我从属性名到可读名称的映射缓存):
for (var key in form) {
if (key.indexOf("$") !== 0) {
if (form[key].$invalid) {
var label = options.labels[key];
if (label)
str += '- ' + label.DisplayName + '<br />';
}
}
}
这很棒!问题是,我的应用程序中的一个常见数据结构是动态表,我可以在其中创建多行,类似于下面。它是一个包含动态创建行的表,用户可以在其中添加更多行:
<table>
<tr ng-repeat="fee in Fees" ng-form="FeeForm">
<td><input type="text" name="FeeName" ng-model="fee.Name" /></td>
<td><input type="text" name="FeeValue" ng-model="fee.Value" /></td>
</tr>
</table>
如果表中的任何字段无效,在这种情况下我想要输出的是表名。这实际上有点作用 - 上面的函数将表单名称识别为错误,我可以将表单名称映射到表名称以输出我想要的内容。
问题是 - 只要表中的一行完全有效,表中的所有表单都被认为是有效的(我假设它们都被命名为相同)。 form.FeeForm。只要其中一个FeeForms生效,$ invalid就为false。
想知道我是否可以通过任何调整来处理这种情况?希望我所要求的是有道理的:/
答案 0 :(得分:0)
arr = np.array([np.arange(0,20)]*20,dtype=float).T
mask = np.diag(np.diag(arr)).astype(bool)
new_arr = np.where(mask,np.e**(arr*np.pi*np.abs(arr - arr.T)),1-(arr/np.sqrt(3)))
(arr2 == new_arr).all()
# True