处理角度指令之间的交互以进行身份验证

无摩擦皮带轮

我有两个指令,为简单起见,我将问题简化为以下内容:

指令01:处理身份验证

它负责打开模式/窗口并获得用户身份验证。

angular
.module('app.directives')
.directive('requiresLogin', function(){       
     return {
         restrict : 'A',
         link : function() { //..}
     }
})

指令02:执行特定动作

angular
.module('app.directives')
.directive('like', function(){

     return {
         restrict : 'A',
         link : function() { //..}
     }
})

指令01和02都绑定单击事件。

我对两个指令的设计感到困惑。

我可以使第二个指令成为第一个指令的子代,并获得指令之间的通信,这在某种程度上是有意义的,因为每个指令的单一职责都保持在这种模式下。但是,我以后所有需要认证的指令都是第一个指令的子代。

我的问题是:

如何根据第一个“身份验证”指令的结果阻止第二个指令(实际操作)?还有其他方法可以在它们之间不建立“父子”关系吗?

昏迷

仅添加“ action”指令并向其注入身份验证服务:

http://jsfiddle.net/coma/dby686ab/

逻辑

app.factory('user', function() {

    var roles = ['user'];

    return {
        hasRole: function(role) {

            return !role || roles.indexOf(role) > -1;
        }
    };
});

app.directive('like', function(user) {

    return {
        restrict: 'A',
        link    : function(scope, element, attrs) {

            element.on('click', function () {

                if (user.hasRole(attrs.authRole)) {

                    element.addClass('liked');
                    element.off('click');

                } else {

                    alert('Unauthorized.');
                }
            });
        }
    };
});

看法

<a like="">Dogs</a>
<a like="" auth-role="user">Birds</a>
<a like="" auth-role="admin">Whales</a>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用SQL在表之间进行交互以进行过滤

来自分类Dev

使用Capybara / Minitest处理身份验证以进行集成测试

来自分类Dev

使用Capybara / Minitest处理身份验证以进行集成测试

来自分类Dev

在Firebase应用之间对用户进行身份验证

来自分类Dev

角度摘要身份验证

来自分类Dev

角度摘要身份验证

来自分类Dev

角度 Laravel 身份验证

来自分类Dev

在前端使用OAuth成功进行身份验证后,如何与后端进行交互?

来自分类Dev

使用twitteR的自动httr身份验证,以“批处理”模式提供对交互式提示的响应

来自分类Dev

使用pysftp进行键盘交互式身份验证时出现EOFError

来自分类Dev

在 Firebase 中使用 PHP 进行身份验证并与 JS 交互

来自分类Dev

微服务架构中的Docker容器之间的身份验证,绕过JWT身份验证进行内部调用

来自分类Dev

验证和身份验证之间的区别?

来自分类Dev

什么是处理WatchKit扩展与父应用程序之间身份验证更改的好方法?

来自分类Dev

在Okhttp中处理身份验证

来自分类Dev

SignlaR身份验证-处理未授权

来自分类Dev

使用Riverpod处理身份验证

来自分类Dev

在响应中处理身份验证错误

来自分类Dev

无法处理身份验证弹出

来自分类Dev

在处理POST请求时找出谁在Node上通过basicAuth进行了身份验证

来自分类Dev

如何从 Azure 批处理和数据工厂使用 Azure 分析服务进行身份验证

来自分类Dev

如何在微服务架构中对服务之间的异步事件消息进行身份验证

来自分类Dev

如何在Java 11客户端-MongoDB 4.4(SSL)之间进行身份验证?

来自分类Dev

使用 MFP 8.0 对用户进行身份验证后无法在单选按钮之间切换

来自分类Dev

可以在 firebase 中的 ios 和 android 项目之间共享用户以进行身份验证

来自分类Dev

如何在非交互模式下使用用户帐户对google-cloud-sdk进行身份验证

来自分类Dev

如何在没有用户交互的情况下对 Azure Active Directory 进行身份验证?

来自分类Dev

通过Atmosphere + Dropwizard进行身份验证

来自分类Dev

使用AES进行DESFire身份验证

Related 相关文章

  1. 1

    如何使用SQL在表之间进行交互以进行过滤

  2. 2

    使用Capybara / Minitest处理身份验证以进行集成测试

  3. 3

    使用Capybara / Minitest处理身份验证以进行集成测试

  4. 4

    在Firebase应用之间对用户进行身份验证

  5. 5

    角度摘要身份验证

  6. 6

    角度摘要身份验证

  7. 7

    角度 Laravel 身份验证

  8. 8

    在前端使用OAuth成功进行身份验证后,如何与后端进行交互?

  9. 9

    使用twitteR的自动httr身份验证,以“批处理”模式提供对交互式提示的响应

  10. 10

    使用pysftp进行键盘交互式身份验证时出现EOFError

  11. 11

    在 Firebase 中使用 PHP 进行身份验证并与 JS 交互

  12. 12

    微服务架构中的Docker容器之间的身份验证,绕过JWT身份验证进行内部调用

  13. 13

    验证和身份验证之间的区别?

  14. 14

    什么是处理WatchKit扩展与父应用程序之间身份验证更改的好方法?

  15. 15

    在Okhttp中处理身份验证

  16. 16

    SignlaR身份验证-处理未授权

  17. 17

    使用Riverpod处理身份验证

  18. 18

    在响应中处理身份验证错误

  19. 19

    无法处理身份验证弹出

  20. 20

    在处理POST请求时找出谁在Node上通过basicAuth进行了身份验证

  21. 21

    如何从 Azure 批处理和数据工厂使用 Azure 分析服务进行身份验证

  22. 22

    如何在微服务架构中对服务之间的异步事件消息进行身份验证

  23. 23

    如何在Java 11客户端-MongoDB 4.4(SSL)之间进行身份验证?

  24. 24

    使用 MFP 8.0 对用户进行身份验证后无法在单选按钮之间切换

  25. 25

    可以在 firebase 中的 ios 和 android 项目之间共享用户以进行身份验证

  26. 26

    如何在非交互模式下使用用户帐户对google-cloud-sdk进行身份验证

  27. 27

    如何在没有用户交互的情况下对 Azure Active Directory 进行身份验证?

  28. 28

    通过Atmosphere + Dropwizard进行身份验证

  29. 29

    使用AES进行DESFire身份验证

热门标签

归档