应用程序首次打开时的条件页面显示

2023-12-25

您好,我刚刚开始学习 Angular && Angular-UI-Router,并试图找出如何确定应用程序首次打开的时间,以将用户发送到登录页面或主页。

这是我到目前为止所拥有的:

codeArtApp.config(function($stateProvider, $urlRouterProvider){
$stateProvider
    .state('login',{
        url : '/login',
        templateUrl:'App/scripts/login/loginView.html',
        controller: 'loginCtrl'
    })
    .state('profile', {
        url : '/profile',
        templateUrl:'App/scripts/login/loginView.html',
        controller: 'profileCtrl'
    })
    .state('404', {
        url: '/404',
        templateUrl:'App/scripts/views/404.html'
    });


$urlRouterProvider.otherwise("404");

});

codeArtApp.run(['$state', '$rootScope', function($state, $rootScope, $log){
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState){
    if(fromState.url === '^' && toState.url !== 'login'){
        $state.go('login');
    }

});

}]);

我在这里假设的是,如果fromState.url被设定为^然后应用程序第一次启动。

For some reason this code enters an infinite loop and I gt this stacktrace: enter image description here

现在据我所知,这是因为事件如果$state.go('login')得到执行toState.url总是404.

我曾希望如果$state.go('login')被处决toState.url将被设置为登录并且该调用将不再执行。

我可能没有将这个逻辑设置在正确的位置......

谁能告诉我 Angular 中如何实现有条件地显示页面?


In your $urlRouterProvider.otherwise调用时您可以传递函数而不是字符串。像这样的事情:

$urlRouterProvider.otherwise(function($injector){

    var $state = $injector.get('$state');
    var Storage = $injector.get('Storage');

    if (Storage.has('authToken')) {
        $state.go('home');
    }
    else {
        $state.go('login');    
    }

});

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应用程序首次打开时的条件页面显示 的相关文章

随机推荐

  • 有趣的事件“Dispose”行为

    我注意到我们的 NET WinForms 应用程序中的有趣行为 我们有一个 MDI 表单 其中添加了许多 MDI 子项 这些子窗体监听 广播 事件 该事件本质上是调用刷新自身 该事件在基类中声明 并在子窗体中添加侦听事件 我注意到 即使这些
  • 使用 PyCharm 在远程服务器上进行 Python 绘图

    我已经开始学习 Python 到目前为止我的设置一直遵循 在 Win10 64 位本地计算机上安装 Python 3 5 并使用 PyCharm 作为一个很棒的 IDE 一切正常 matplotlib 图表和其他可视化输出显示良好 调试工作
  • Android Studio 4.1.1 macOS 全屏错误

    将 Mac 更新到 Big Sur 后遇到问题11 0 1 所有插页式对话框窗口 设备管理器 首选项 SDK 选项等都不会在全屏模式下作为插页式 对话框打开 而是作为应用程序内的选项卡打开 然后 Android Studio 冻结并且没有响
  • 是否可以在 Rust 中使用运行时确定大小的堆栈分配数组?

    是否有相当于alloca在 Rust 中创建可变长度数组 我正在寻找与以下 C99 代码等效的内容 void go int n int array n 这不可能directly 因为支持它的语言中没有直接语法 话虽这么说 C99 的这个特殊
  • 我们可以在 K8S 的 POD 中执行容器吗?

    我正在将 docker 镜像放入 POD 中 我们可以使用 docker exec 执行 Docker 容器 同样 有没有办法在 POD 中执行容器来检查一些数据 有多种方法可以进入 Pod 中的 Kubernetes 容器 kubectl
  • Python:self 与 type(self) 以及类变量的正确使用

    当在Python中使用类变量时 可以通过 self 感谢引用 或 type self 直接 访问和 如果它是可变的 直接操作它 而不可变变量 例如整数 显然可以得到当您只使用 self 时 会被新实例对象遮蔽 那么 在处理 Python 类
  • GDB 找不到行号,而 objdump 可以

    我正在使用 DDD GDB 调试在 NintendoDS 上运行的自制游戏 该游戏使用 arm eabi gcc devkitARM release 32 4 5 1 构建 仅供参考 我上传了未剥离的 elf 二进制文件 文件不再托管 以防
  • 圆弧碰撞检测

    那么如何实现圆弧的碰撞检测呢 我是否必须使用 Box 2d 碰撞 或者我可以使用 Rectangle 或类似的东西以其他方式进行操作吗 顺便说一句 我讨厌 box2d 因为我不理解其中的大部分内容 所以如果有一个排除 box2d 的解决方案
  • Perl 脚本与单行脚本 - 正则表达式的功能差异

    我有一个 Perl 程序 它采用 STDIN 从另一个 bash 命令通过管道传输 bash 命令的输出相当大 大约有 200 行 我想采取entire输入 多行 并将其提供给单行 perl 脚本 但到目前为止我尝试过的任何方法都不起作用
  • ModuleNotFoundError:没有名为“google.appengine”的模块

    我想在 Windows 上用 python3 进行谷歌搜索 谷歌说明说他们支持 python3 并输入 gcloud topic init 以获取详细信息 但没有说没有 python2 7 的解释器 我是否必须安装 python2 7 才能
  • 如何在 Android O 中设置 Firebase 通知 ChannelID?

    对于 API 级别 26 我们必须设置一个通道 id 作为参考 我学会了如何在没有 ChannelID 的情况下做到这一点 下面是我的 Firebase 消息传递设置代码 但现在对于新的 Android api 26 级别 Notifica
  • f:convertDateTime 支持 Java8 LocalDate / LocalDateTime? [复制]

    这个问题在这里已经有答案了 JSF 核心标签f 转换日期时间 https docs oracle com javaee 7 javaserver faces 2 2 vdldocs facelets f convertDateTime ht
  • 判断一个数字是否是 scala 中的好数字

    您好 我是 Scala 函数式编程方法的新手 我想在我的函数中输入一个数字并检查它是否是一个好数字 如果一个数字的每个数字都大于该数字右侧的数字之和 则该数字是一个好数字 例如 9620 相当于 2 gt 0 6 gt 2 0 9 gt 6
  • 如何有效去除字符串的一部分

    有一个像 A B C D E F 这样的字符串 如何删除 C D 部分并得到像 A B E F 这样的字符串 要么只是将其替换掉 input Replace C D 或者使用上一个问题的解决方案之一 将其从数据结构中删除并将其重新连接在一起
  • 从 Struts2 应用程序中的 FreeMarker 获取模板文本

    我想使用 Freemarker 在 Struts2 应用程序中生成电子邮件 由于我也在使用 Freemarker 来实现我的观点 因此我想 重用 相同的配置 使用 Spring 做同样的事情已经有一个类似的问题 在 Spring 应用程序中
  • Java 包装器到 Perl/Python 代码

    我必须在仅支持 Java 的服务器上部署一些 Web 服务 但其中一些将使用 perl 或 python 完成 我想知道是否可以开发一个 Java 包装器来调用用 perl 或 python 编写的特定代码 因此 我希望所有的 Web 服务
  • 如何减少 GC 期间弱引用的处理时间?

    目前 我面临的问题是我的应用程序偶尔会显示较长的 GC 时间 但所有这些都只是由弱引用处理引起的 所以线程停止时间总是接近弱引用处理时间 所有其他 GC 周期均为 0 0001 秒至 0 200 秒 来自 gc log 重新格式化 1038
  • 如何从初始 LocalDateTime 和 cron 表达式获取下一个 LocalDateTime?

    我有一个初始日期和一个 cron 表达式 我怎样才能找到满足这个 cron 表达式的下一个日期 String cronExpresion LocalDateTime initial LocalDateTime now LocalDateTi
  • React 中的可搜索下拉菜单

    我有以下反应列表
  • 应用程序首次打开时的条件页面显示

    您好 我刚刚开始学习 Angular Angular UI Router 并试图找出如何确定应用程序首次打开的时间 以将用户发送到登录页面或主页 这是我到目前为止所拥有的 codeArtApp config function statePr