博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
--@angularJS--路由、模块、依赖注入
阅读量:6037 次
发布时间:2019-06-20

本文共 2179 字,大约阅读时间需要 7 分钟。

以下是演示angular路由切换的demo.

 

主页:index.html

<!doctype html>

<html ng-app="bookStoreApp">

<head>

    <meta charset="UTF-8">
    <title>BookStore</title>
    <script src="framework/1.3.0.14/angular.js"></script>
    <script src="framework/1.3.0.14/angular-route.js"></script>
    <script src="framework/1.3.0.14/angular-animate.js"></script>
    <script src="js/app.js"></script>
    <script src="js/controllers.js"></script>
    <script src="js/filters.js"></script>
    <script src="js/services.js"></script>
    <script src="js/directives.js"></script>
</head>

<body>

    <div ng-view>
    </div>
</body>

</html>

 

模板文件(html碎片文件)tpls/:

hello.html:

<p>{

{greeting.text}},Angular</p>

 

bookList.html:

<ul>

    <li ng-repeat="book in books">
        书名:{
{book.title}}&nbsp;&nbsp;&nbsp;作者:{
{book.author}}
    </li>
</ul>

 

控制器文件js/:

controllers.js:

var bookStoreCtrls = angular.module('bookStoreCtrls', []);

bookStoreCtrls.controller('HelloCtrl', ['$scope',

    function($scope) {
        $scope.greeting = {
            text: 'Hello'
        };
    }
]);

bookStoreCtrls.controller('BookListCtrl', ['$scope',

    function($scope) {
        $scope.books =[
         {title:"《AngularJS从入门到精通》",author:"中华烟云"},
         {title:"《AngularJS权威指南》",author:"中华烟云"},
         {title:"《用AngularJS开发下一代WEB应用》",author:"中华烟云"}
        ]
    }
]);

/**

 * 这里接着往下写,如果控制器的数量非常多,需要分给多个开发者,可以借助于grunt来合并代码
 */

 

最后实现路由功能的是app.js:

var bookStoreApp = angular.module('bookStoreApp', [

    'ngRoute', 'ngAnimate', 'bookStoreCtrls', 'bookStoreFilters',
    'bookStoreServices', 'bookStoreDirectives'             //[]内的为依赖注入的模块,ng开头的为angular自带的模块
]);

bookStoreApp.config(function($routeProvider) {         //$routeProvider是angular-route.js提供的原生路由对象,可以通过$routeProvider.when({}).when({})....otherwise({});这种链式写法来配置路由

    $routeProvider.when('/hello', {                              //'/hello'为路由路径,即在哈希符#后面动态输入的路径字串,如:....#/hello
        templateUrl: 'tpls/hello.html',                            //当路径为...#/hello时,调用模板文件'tpls/hello.html'
        controller: 'HelloCtrl'                                        //当路径为...#/hello时,调用控制器文件'js/HelloCtrl.js
    }).when('/list',{                                                  //:此时若切换到...#/list路径下
     templateUrl:'tpls/bookList.html',                          //当路径为...#/list时,调用模板文件'tpls/bookList.html'
     controller:'BookListCtrl'                                      //当路径为...#/list时,调用控制器文件'js/BookListCtrl.js
    }).otherwise({                                                   //:否则默认跳转到...#/hello路径下
        redirectTo: '/hello'
    })
});

注:angular-route.js提供的原生路由对象有个缺陷,就是不能深层次嵌套。要实现深层次嵌套,还得用UI-Router,源文件为angular-UI-Router.js.

     UI-Router路由插件将在下一篇讲解.

转载地址:http://qjrhx.baihongyu.com/

你可能感兴趣的文章
Ztree异步加载自动展开节点
查看>>
反射操作公共成员变量
查看>>
Android热修复升级探索——代码修复冷启动方案
查看>>
学校宿舍的深夜之思考
查看>>
VB.NET 生成DBF文件
查看>>
编译安装nginx 1.9.15
查看>>
新的开始~~~
查看>>
字符串的扩展
查看>>
存储过程中调用webservice
查看>>
神奇语言 python 初识函数
查看>>
Windows安装Composer出现【Composer Security Warning】警告
查看>>
dutacm.club Water Problem(矩阵快速幂)
查看>>
企业架构研究总结(22)——TOGAF架构开发方法(ADM)之信息系统架构阶段
查看>>
接口测试(三)--HTTP协议简介
查看>>
周志华《机器学习》课后答案——第4章.决策树
查看>>
frameset分帧问题
查看>>
特殊样式:ime-mode禁汉字,tabindex焦点
查看>>
linux
查看>>
Layout父元素点击不到的解决办法
查看>>
【面试次体验】堆糖前端开发实习生
查看>>