0

所以,我希望创建我的第一个角度指令来进行验证检查。本质上,我想确保用户名是唯一的。 这个答案非常适合我的第一次通过,并且可以按预期工作以创建新用户。

我希望这也适用于想要更改用户名的用户。在服务器端,我会编写代码来检查数据库中除了当前用户之外的任何用户的用户名是否不存在。换句话说,如果用户正在修改他们的个人资料,并且表单有一组包含用户名的字段,如果用户名已经存在,我不希望表单无效,因为它存在的原因是当前用户已经拥有它。

因此,除了用户名之外,我想做的是将 userId(整数 PK)作为 ajax 调用中的参数传递。userId 存在于 $scope 上,但我不知道如何修改指令以允许我传递附加信息。

我想标记看起来像下面这样?

    <input type="email" ng-model="userEmail" 
           name="userEmail" required unique-email="userId"/>
4

1 回答 1

1

Since the uniqueEmail directive does not create a new scope, you can pass the name of the property as shown (unique-email="userId") and then use $eval in your link function:

var userId = scope.$eval(attrs.uniqueEmail);

Note that I'm assuming the link function parameter is named attrs (not attr).

于 2013-07-26T16:54:44.883 回答