所以,我正在寻找创建我的第一个角度指令进行验证检查。基本上我想确保用户名是唯一的。 This answer非常适合我的第一次传递,并且可以按照预期的方式创建新用户。
我也希望这对想要更改用户名的用户有用。在服务器端,我会编写代码来检查数据库中的用户名是否存在于当前用户以外的任何用户。换句话说,如果用户正在修改他们的个人资料,并且表单有一组包含用户名的字段,我不希望如果用户名已经存在则表示无效,因为原因存在的是当前用户已经拥有它。
所以我想做的是除了用户名之外,还将userId(整数PK)作为参数传递给ajax调用。 userId存在于$ scope上,但我不知道如何修改该指令以允许我传递其他信息。
我认为标记看起来像下面这样?
<input type="email" ng-model="userEmail"
name="userEmail" required unique-email="userId"/>
答案 0 :(得分:1)
由于uniqueEmail指令不创建新范围,您可以传递属性名称(unique-email="userId"
),然后在链接函数中使用$eval:
var userId = scope.$eval(attrs.uniqueEmail);
请注意,我假设链接功能参数名为attrs
(不是attr
)。