angular run()运行块

和配置块不同,运行块在注入器创建之后被执行,它是所有AngularJS应用中第一个被执行的方法。

运行块是AngularJS中与main方法最接近的概念。运行块中的代码块通常很难进行单元测试,它是和应用本身高度耦合的。

运行块通常用来注册全局的事件监听器。例如,我们会在.run()块中设置路由事件的监听器以及过滤未经授权的请求。

假设我们需要在每次路由发生变化时,都执行一个函数来验证用户的权限,放置这个功能唯一合理的地方就是run方法:

angular.module(‘myApp‘, [‘ngRoute‘])
.run(function($rootScope, AuthService) {
    $rootScope.$on(‘$routeChangeStart‘, function(evt, next, current) {
        // 如果用户未登录
        if (!AuthService.userLoggedIn()) {
            if (next.templateUrl === "login.html") {
                // 已经转向登录路由因此无需重定向
            } else {
                $location.path(‘/login‘);
            }
        }
    });
});

run()函数接受个参数。

  • initializeFn(函数)AngularJS在注入器创建后会执行这个函数。
时间: 2024-12-17 10:17:12

angular run()运行块的相关文章

深入理解Android Instant Run运行机制

Instant Run Instant Run,是android studio2.0新增的一个运行机制,在你编码开发.测试或debug的时候,它都能显著减少你对当前应用的构建和部署的时间.通俗的解释就是,当你在Android Studio中改了你的代码,Instant Run可以很快的让你看到你修改的效果.而在没有Instant Run之前,你的一个小小的修改,都肯能需要几十秒甚至更长的等待才能看到修改后的效果. 传统的代码修改及编译部署流程 传统的代码修改及编译流程如下:构建整个apk → 部

Windows7下的Run运行命令一览表

按住Windows键(就是左边Ctrl和Alt之间那个印windows徽标的键,简称Win键)+R,即可弹出运行对话框,在里面输入黑体字符即可运行相应程序.相比XP这次新增了不少新东西. 添加/删除程序 = appwiz.cpl管理工具 = control admintools (注:其实是打开一堆管理工具快捷方式)授权管理器 = azman.msc 新增 计算器 = calc证书管理器 = certmgr.msc字符映射表 = charmap磁盘检查工具 = chkdsk控制面板 = cont

使用xampp将angular项目运行在web服务器

需求 在开发angular项目时,因为需要做自适配以适应不同的屏幕,而我的电脑只有1366的.所以我现在需要在本地将angular项目运行在xampp上,然后用手机开热点,给本机和另一台大屏电脑或手机连同一wifi,再使用大屏电脑或手机打开本地电脑运行的网站查看适配情况. 安装xampp 下载地址:https://sourceforge.net/projects/xampp/ 下载好之后,一路勾选下去就ok了,出现问题请自行百度解决. 开启xampp 如果你是安装好之后进行开启,那么直接在底部栏

angular.run 妙用

**1.浏览器判断**在angular做微信应用的时候,有时候我们也想把相同一份代码运行在非微信的浏览器上,这时候我们可以在angular的run上写点东西实现~例如asw.run函数里执行定义一个$rootScope.isWeiXinLogin的函数 .run(['$rootScope', '$route', '$window', '$location', 'Position', '$cookies', 'Request', '$cookieStore', function($rootScop

配置好maven后,设置tomcat:run运行程序

1.要在intellij idea使用maven,同样是先要配置maven的路径,不过intellij idea已经集成maven插件了,省去了安装的麻烦 2.创建maven web项目 点击finish完成项目的创建过程,为了在pom.xml文件中添加依赖之后自动引入jar,在idea右上角点击Enable Auto-Import 刚创建好的项目目录结构如图 在src/main中手动添加java文件夹,然后在java文件夹点击右键,选择Mark Directory As --> Source

使用docker-compose简化docker run 运行参数

目录 1docker-compose安装 2官网docker运行参数简化 3docker-compose.yml语法说明 4参考链接 docker-compose安装 docker-compose安装非常简单,使用pip install docker-compose 即可,若提示找不到pip错误请安装pip : ubuntu : apt-get install -y python-dev python-pip centos: yum install -y python-devel phthon-

mvn spring-boot:run运行不了的解决办法

1)由于maven缺少对应包 修改maven 文件夹中的settings.xml ,增加下面语句        <profile>            <id>jdk-1.8</id>            <activation>                <activeByDefault>true</activeByDefault>                <jdk>1.8</jdk>     

angular $digest 运行10次货10次以上会抛出异常

今天在做项目时,遇到一个问题,红圈处输入其他数字(n多次)也不会报异常,但是有一种特例,即0,1,0,1,0,1这种顺序输入时,输入第13次时,页面计算结果(蓝色圆圈)不会更新,困扰了1天多这个问题, 曾尝试着用watch 函数监听红色圆圈处的值,但是后来发现,让angular 强制更新,但是页面却不更新,最后放弃了这种方法. 在digest循环中,AngularJS会遍历整个$watch列表,所有watcher都会被触发,当一个wathcer被触发时,AngularJS会检测Scope模型相应

Maven启动tomcat7:run运行异常:org.apache.catalina.LifecycleException: Failed to start component

异常信息: 严重: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/ssm_web]] at java.util.concurr