angularjs - 用于多个电子邮件 ID 文本区域控件的 Angular JS 自定义指令
问题描述
我是 AngularJS 的新手,我创建了一个自定义指令来检查给定文本区域中的无效电子邮件,并用逗号分隔。
directive(directiveId, function () {
return {
require:"ngModel",
controller: controllerId,
link: function multipleEmailValidator(scope, element, attributes, controller) {
controller.$validators.emailListValidation = function (scope,modelValue, viewValue) {
if (!controller.$isEmpty(viewValue)) {
// Get value on emails input as a string
var emails = viewValue;
// Split string by comma into an array
emails = emails.split(",");
var regex =
/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
var invalidEmails = [];
for (var i = 0; i < emails.length; i++) {
// Trim whitespaces from email address
emails[i] = emails[i].trim();
// Check email against our regex to determine if email is valid
if (emails[i] === "" || !regex.test(emails[i])) {
invalidEmails.push(emails[i]);
}
}
scope.message = "Invalid emails: " + invalidEmails.join(", ");
}
};
}
}; });
html代码:
<tr class="fit">
<td><label class="standard-left-label">To:</label></td>
<td>
<textarea class="standard-textarea"
style="height: 110px; width: 350px;"
maxlength="200"
ng-model="email.toList"
ng-class="readOnly ? 'k-state-disabled' : ''"
ng-readonly="readOnly" email-List-Validation></textarea>
</td>
</tr>
我得到的错误
我无法理解为什么会出现这个错误。如何解决此错误的任何指导都会对我有所帮助。
谢谢,纳加斯里。
解决方案
推荐阅读
- javascript - 迭代自定义元素中的 HTMLCollection
- javascript - event.target.value 没有将用户输入插入到变量中
- php - 调用未定义的方法 Illuminate\Database\Eloquent\Relations\HasMany::withTimestamps()
- yarnpkg - 纱线 --pnp 是什么?
- android - android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class android.support.v7.widget.CardView
- powershell - 我可以在 Powershell 中命名什么函数?
- c++ - 我无法让我的字符串方程解析器识别和合并负数
- php - 什么情况下 IF 语句可以触发条件行中的命令?
- google-app-engine - Google App Engine SSL(找不到 DNS 记录)
- android - Android Jetpack Navigation 组件可以处理片段中的后退操作吗?