使用Angular时如何在嵌入式页面容器中显示Auth0锁定?

艾尔·亚历杭德罗·布鲁尔(Iair Alejandro Bluer)

我正在使用Auth0 Lock来验证用户身份,并且尝试使Lock小部件不是弹出窗口而是嵌入页面本身。

我尝试使用该container选项,并lock.show()从要加载的页面中的脚本中调用该方法,但实际上并没有。只有当我lock.show()从函数内部调用方法时,ng-click它才会显示小部件。

初始化锁小部件:

lockProvider.init({
        clientID: 'XXX',
        domain: 'YYY.auth0.com',
        options: {
            allowSignUp: false,
            container: 'hiw-login-container',
            auth: {
                responseType: 'token',
                params: {
                    scope: 'openid email'
                }
            },
            allowedConnections: ['Username-Password-Authentication']
        }
    });

风景:

 <div ng-if="!isAuthenticated" >
   <script>
       lock.show();
    </script>
    <md-content>
        <div id="hiw-login-container" style="width: 320px; margin: 40px auto; padding: 10px; border-style: dashed; border-width: 1px; box-sizing: border-box;">
             embedded area
         </div>
     </md-content>
 </div>

调用lock.show来自ng-click

<md-button class="md-warn md-raised"
           aria-label="Login"
           ng-click="toolbar.authService.login()"
           ng-if="!isAuthenticated">
  Login
</md-button>

function login() {
    lock.show();
}

我无法上传图片,因此以下是运行该应用程序时显示的结果链接:

  1. 初始状态-按下任何按钮之前(按下登录按钮之前为HomePage
  2. 按下登录按钮后(按下登录按钮后为主页

为什么它从一开始就不显示小部件?

若昂·安杰洛(JoãoAngelo)

您使用的是Angular,因此任何依赖于其渲染管道的Javascript代码,因为它使用由Angular本身管理的HTML元素,都需要遵循这些规则。

当您从ng-clickAngular调用它时,它已经完成了它的工作,并且Lock将正确找到目标元素并正确显示。

当您尝试lock.show从内联脚本进行调用时,不能保证Angular已经完成处理,并且一切都将无法进行。

您需要lock.show从支持Angular的代码中调用您可以考虑以下几点:

function YourController($scope) {
   $scope.$on('$viewContentLoaded', lock.show);
}

或者

angular.element(lock.show);

甚至考虑考虑了解Angular何时提供HTML元素并进行调用的指令lock.show

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用$ .each在JSON中显示嵌入式数组?

如何在嵌入式ANSI C中制作锁定/关键部分?

嵌入式代码将不会显示在WordPress页面中

WildFly:如何使用嵌入式容器测试EJB?

如何使用嵌入式EJB容器制作胖子

如何在C ++中嵌入Chromium嵌入式框架

如何使用嵌入式Tomcat容器在Spring Boot中创建JNDI上下文

如何在angular 6中使用自定义指令渲染动态生成的嵌入式SVG

如何在Exoplayer上显示HLS嵌入式字幕

在angular2中显示嵌入式图像

如何在R Shiny应用程序中显示嵌入式推文?

如何在嵌入式数组mongodb中查询嵌入式文档

如何使用Angular检索和显示嵌入式Firestore对象?

单击链接转到包含嵌入式内容的页面时,嵌入不会显示

如何在Pyspark中获取嵌入式Angular JavaScript文本框值

如何在angular2应用程序中使用Braintree的嵌入式UI?

嵌入 angular 或使用嵌入式 URL REST API 后,如何从嵌入式 Power BI 报告/视觉对象中读取数据点值详细信息?

如何在嵌入式tomcat中添加ServletContextListener

如何在嵌入式文档中查找某个元素

如何在WKWebView中启用嵌入式YouTube视频?

如何在 MongoDb 中查询嵌入式文档?

如何在Android嵌入式卡中设置setText()

如何在嵌入式CSS中编写a:hover?

如何在嵌入式函数中存储值

如何在Go中读取嵌入式字段?

如何在jQuery中调用嵌入式函数?

如何在SVG中制作嵌入式投影

如何在mongodb中搜索嵌入式文档?

如何在嵌入式Jetty中配置ErrorPageErrorHandler?