angular路由小笔记

angular路由

angular提供的 when和otherwise两个方法来定义引用路由。

路由中有controller template templateUrl resolve

其中

  • controller 是指定的控制器与路由所创建的新作用域关联在一起。
  • template templateURL为模板 模板路径 比较重要的是 resolve,要单独记录一下。

如果设置了*resolve属性,AngularJS会将列表中的元素都注入到控制器中。如果这些依赖是promise对象,它们在控制器加载以及$routeChangeSuccess被触发之前,会被resolve并设置成一个值。*

  • redirectTo 属性的值是一个字符串,最后路径会替换为这个值。

  • reloadOnSearch 如果设置为true,当$location.search()发生变化时会重新加载路由。false就不会了。

routeParamsangular routeParams。用法是在路由参数前面加上”:”,如testId

app.config(['$routeProvider',function ($routeProvider) {
$routeProvider
    .when('/test', {
        templateUrl: 'angu_home_route/test.html',
        controller: 'homeStarter'
    })
    .when('/testId/:id', {
        templateUrl: 'angu_home_route/testId.html',
        controller: 'testIdCtrl',
        resolve:{
                getJson: function($http){

                    $http.get("json/test.json")
                        .success(function(json) {
                            console.log(json);

                            angular.forEach(json,function(data,index,array){
                                for(var i = 0;i < data.length; i++){
                                    console.log(data[i].userCode);
                                }

                            });
                        });

                }
        }
    })
    .otherwise({
        redirectTo: '/test'
    });

}]);

注意 如果需要在控制器中访问这些变量,需要把$routeParams注入到控制器。

$location服务

用来解析地址栏中的URL, location使 window.location对象。

  • path() 用来获取页面的当前路径
  • replace() 屏蔽回退按钮 不能点击后退按钮
  • absUrl() 用来回去编码后的完整URL
  • hash() 用来获取URL中的hash片段
  • host() 获取URL中的主机
  • port() 获取port中的端口号
  • protocol() 获取URL中的协议
  • search() 获取URL中的查询串
  • url() 获取当前页面的url

angular 支持两种模式 标签模式 和 html5模式

标签模式

标签模式是HTML5模式的降级方案,URL路径以#符号开头。

html5模式

运用时不要用相对路径。

路由事件

路由事件有二个阶段

第一阶段就是路由变化之前的广播 routeChangeStartresolvepromiseresolve广 routeChangeSuccess事件。

另外就是会出现 routeChangeError routeUpdate

# locationURL window服务来设置地址。
$window.location.href = “/reload/page”;

如果要在作用域的生命周期外使用 location apply函数将变化抛到应用外部。因为 location digest来驱动浏览器的地址变化,以使路由事件正常工作的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值