【问题标题】:Using Additional Parameter in Unique Check for Angular Directive在 Angular 指令的唯一检查中使用附加参数
【发布时间】:2013-07-26 16:01:02
【问题描述】:

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

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

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

我想标记会如下所示?

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

【问题讨论】:

    标签: validation angularjs angularjs-directive


    【解决方案1】:

    由于 uniqueEmail 指令不会创建新范围,因此您可以传递如图所示的属性名称 (unique-email="userId"),然后在链接函数中使用 $eval

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

    请注意,我假设链接函数参数名为 attrs(而不是 attr)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      • 2016-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多