angular记录

来源:互联网 发布:中国云计算技术大会 编辑:程序博客网 时间:2024/06/08 05:25

使用$timeout,会在浏览器渲染之后执行。


假设我们需要在每次路由发生变化时,都执行一个函数来验证用户的权限,放置这个功能唯一合理的地方就是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');            }        }    });});



下面所有的代码所做的都是同一件事情:

myMod.provider('greeting', function() {  this.$get = function() {return function(name) {  alert("Hello, " + name);};  };});myMod.factory('greeting', function() {  return function(name) {alert("Hello, " + name);  };});myMod.value('greeting', function(name) {  alert("Hello, " + name);}); 


任何一对花括号({和})中的语句集都属于一个块,在这之中定义的所有变量在代码块外都是不可见的,我们称之为块级作用域。

函数作用域就好理解了(*^__^*) ,定义在函数中的参数和变量在函数外部是不可见的。

var a = true; if(a){     var b = 1; } alert(b) //输出1 //正常来说如果有块级作用域的话,alert(b)应该是输出`undefined`才对。


0 0
原创粉丝点击