zoukankan      html  css  js  c++  java
  • AngularJS模块加载

    配置块

    在模块的加载阶段,AngularJS会在提供者注册和配置的过程中对模块进行配置。在整个AngularJS的工作流中,这个阶段是唯一能够在应用启动前进行修改的部分。

    angular.module('myApp', [])

    .config(function($provide) {});

    最常使用的factory,directive等都是config函数的语法糖,它们都会在配置阶段执行。

    需要特别注意的是,AngularJS会以函数的书写和注册的顺序来执行它们。也就是说我们不能注入一个尚未注册的提供者。唯一例外的是constant()方法,这个方法总是在所有配置块之前被执行。

    运行块

    和配置块不同,运行块在注入器创建之后被执行,它是所有AngularJS应用中第一个被执行的方法,更接近于main方法的概念。运行块中的代码块通常很难进行单元测试,它是和应用本身高度耦合的。运行块通常用来注册全局的事件监听器,例如我们会在.run()块中设置路由事件的监听器以及过滤未经授权的请求。

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

    angular.module('myApp', [])

    .run(function($rootScope, AuthService{

    $rootScope.$on('$routeChangeStart', function(evt, next, current) {

    //if not log in

    if(!AuthService.userLoggedIn()) {

    if(next.templateUrl ==="login.html") {

    //已经转向登录路由因此无需重定向

    } else {

    $location.path('/login');

    }

    }

    })

    })

  • 相关阅读:
    通过使用 SQL,可以为列名称和表名称指定别名(Alias)
    BETWEEN 操作符
    IN 操作符
    SQL 通配符
    LIKE 操作符
    TOP 子句
    DELETE 语句
    Update 语句
    INSERT INTO 语句
    IOS SWIFT 网络请求JSON解析 基础一
  • 原文地址:https://www.cnblogs.com/1000px/p/4670675.html
Copyright © 2011-2022 走看看