zoukankan      html  css  js  c++  java
  • angular中ng-route和ng-ui-router的差异($http)

    ngroute和ui-router并不是两个相互独立的部分,ui-router是社区库提供的用来提高ngroute的功能的,可用于多视图(嵌套),功能十分强大!

    为了全面的了解两者的不同点,在这里我就加上$http请求时对两者进行比较,

    1.引入文件:

     ngroute:<script src="angular-route.js"></script>

     ui-router:<script src="angular-ui-router.js"></script>

    2.注入:

    ngroute: var app = angular.module('app',['ngRoute']);

    ui-router: var app = angular.module('app',['ui.router']);

    3.配置:

    【传参控制、判断条件、默认指定】

    ngroute: app.config(['$routeProvider',function ($routeProvider) {

        $routeProvider.when('/index/:id',{
            templateUrl:'template/musicList_tpl.html',
            controller:"musicControler"
        }).otherwise({
            redirectTo:'/index/1'//redirectTo
        })

    ]}  

    ui-router:  app.config(['$stateProvider','$urlRouterProvider',function ($stateProvider,$urlRouterProvider) {

            $stateProvider.state("first",{//(first命名空间 绑定到视图可以也放在a标签)

    多种传递参数方式:
                url:'/index/:id',//(这才是hash值)
                //url:'/index/{id:int}',
                //url:'/index/?id&name',
                templateUrl:"me-musicList.html",
    //            template:"<h1>sss</h1>",

    可以拥有自身的控制器
                controller:"lrxController"
            })
                .state('music',{
                    url:'/music/:id',
                    templateUrl:"me-musicList.html",
                    controller:"lrxController"
                })
            //(router网页默认指定首页)   
            $urlRouterProvider.otherwise('index/1');

    4.控制器:【依赖:$routeParams'、'$stateParams'、回调:success/error、then/catch】

    ngroute: app.controller('lrxController',['$routeParams','$http','$scope',function ($routeParams,$http,$scope) {//
    //        console.log($routeParams.id);
            $http({
                url:'listMusic.php',
                method:'get',
                params:{
                    id:$routeParams.id
                }
            }).success(function (res) {
                $scope.musicList = res;
            })
        }]);

     

    ui-router: app.controller('lrxController',['$scope','$stateParams',"$http",function ($scope,$stateParams,$http) {
        $http({
            url: "listMusic.php",
            method: "get",
            params: {
                id: $stateParams.id
            }
        }).then(function (res) {//success替换成then
            console.log(res);
            $scope.musicList = res
        })
    }]);

    5.指令和视图:【参数,ng-view。 ui-sref、 ui-view

    <li><a href="#/index/1">流行</a></li>
    <li><a href="#/index/2">复古</a></li>

    <div class="content" ng-view> </div>

     

    <!--(ui-sref-active查看当前激活状态并设置Class)
    .active a{
        font-size: 30px;
    }-->

     

    <li ui-sref-active="active"><a  ui-sref="home({id:1})">首页</a></li>
    <li ui-sref-active="active" ui-sref="music({id:2})"><a>音乐</a></li>

    <div class="content" ui-view> </div>

     

  • 相关阅读:
    第二阶段团队冲刺07
    第二阶段团队冲刺06
    第二阶段团队冲刺05
    深入浅出设计模式系列 -- UML类图
    Linux、Mac统计文件夹下的文件数目
    控制反转及依赖注入(IoC/DI)概念
    深入理解MySQL优化原理
    git config的全局和本地配置
    Vim命令速查表
    聊聊kafka的工作原理
  • 原文地址:https://www.cnblogs.com/LiangRX/p/6524230.html
Copyright © 2011-2022 走看看