AngularJS路由系列(3)-- UI-Router初体验

本系列探寻AngularJS的路由机制,在WebStorm下开发。

AngularJS路由系列包括:

1、AngularJS路由系列(1)--基本路由配置
2、AngularJS路由系列(2)--刷新、查看路由,路由事件和URL格式,获取路由参数,路由的Resolve
3、AngularJS路由系列(3)-- UI-Router初体验
4、AngularJS路由系列(4)-- UI-Router的$state服务、路由事件、获取路由参数
5、AngularJS路由系列(5)-- UI-Router的路由约束、Resolve属性、路由附加数据、路由进入退出事件
6、AngularJS路由系列(6)-- UI-Router的嵌套State

项目文件结构

node_modules/
public/
.....app/
..........bower_components/
...............toastr/
....................toastr.min.css
....................toastr.min.js
...............jquery/
....................dist/
.........................jquery.min.js
...............angular/
....................angular.min.js
...............angular-ui-router/
....................release/
.........................angular-ui-router.min.js
...............angular-route/
.........................angular-route.min.js
..........controllers/
...............HomeController.js
...............AllSchoolsController.js
...............AllClassroomsController.js
...............AllActivityiesController.js
...............ClassroomController.js
...............ClassroomSummaryController.js
...............ClassroomMessageController.js
..........css/
...............bootstrap.cerulean.min.css
..........filters/
...............activityMonthFilter.js
..........services/
...............dataServices.js
...............notifier.js
..........templates/
...............home.html
...............allSchools.html
...............allClassrooms.html
...............allActivities.html
...............classroom.html
...............classroomDetail.html
...............classroom_parent.html
..........app.js
.....index.html
.....favicon.ico
server/
.....data/
.....routes/
.....views/
.....helpers.js
package.json
server.js

关于UI-Router

相比ngRoute, UI-Router不仅包含ngRoute的全部功能,还包括其它更多的功能,提供了一种state-based的路由机制。

UI-Router中的state指什么?
AngularJS应用程序中的places。

如何获取UI-Router?

bower intall angular-ui-router#0.2.15

npm install [email protected]

https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.min.js

http://angular-ui.github.io/ui-router/release/angular-ui-router.min.js

如何使用获取UI-Router?

→ 添加angular-ui-router.js的引用
→ 添加对ui.router模块的依赖
→ 在视图中使用ui-view

如何配置UI-Router?

(function(){
    var app = angular.module(‘app‘,[‘ui.router‘]);
    app.config([‘$stateProvider‘, function($stateProvider){
        $stateProvider
            .state(‘home‘,{
                url:‘/‘,
                controller: ‘HomeController‘,
                controllerAs: ‘home‘,
                templateUrl: ‘app/templates/home.html‘
            })
    }]);
}());

■ 激活一个State

● $state.go(‘classrooms‘);
● <a ui-sref="classrooms">Classrooms</a>
● <a href="/classrooms">Classrooms</a>

使用UI-Router初体验

■ index.html,重新设计,使用UI-Router

bootstrap.cerulean.min.css
toastr.min.css

<!--Angular-->
angular.min.js
angular-ui-router.min.js

<!--Application-->
app.js

<!--Services-->
dataServices.js
notifier.js

<!--Filters-->
activityMonthFilter.js

<!--Controls-->
HomeController.js
AllSchoolsController.js
AllClassroomsController.js
AllActivityiesController.js
ClassroomController.js
ClassroomSummaryController.js
ClassroomMessageController.js

<body ng-app="app">
    <a href="#/">School Buddy</a>
    <a href="#/schools">Schools</a>
    <a href="#/activities">Activities</a>

    <div ui-view></div>
</body>

■ app.js, 重新设计,使用UI-Router

(function(){
    var app = angular.module(‘app‘,[‘ui.router‘]);

    app.config([‘$logProvider‘, ‘$stateProvider‘, function($logProvider, $stateProvider){
        $logProvider.debugEnabled(true);

        $stateProvider
            .state(‘home‘,{
                url: ‘/‘,
                template: ‘<h1>This is an inline template</h1>‘
            });
    }]);
}());

UI-Router的templateUrl属性

■ app.js, 使用templateUrl属性

(function(){
    var app = angular.module(‘app‘,[‘ui.router‘]);

    app.config([‘$logProvider‘, ‘$stateProvider‘, function($logProvider, $stateProvider){
        $logProvider.debugEnabled(true);

        $stateProvider
            .state(‘home‘,{
                url: ‘/‘,
                templateUrl: ‘/app/templates/home.html‘,
                controller: ‘HomeController‘, //也可以写成HomeController as home
                controllerAs: ‘home‘
            });
    }]);
}());

■ app.js, 添加更多的路由

(function(){
    var app = angular.module(‘app‘,[‘ui.router‘]);

    app.config([‘$logProvider‘, ‘$stateProvider‘, function($logProvider, $stateProvider){
        $logProvider.debugEnabled(true);

        $stateProvider
            .state(‘home‘,{
                url: ‘/‘,
                templateUrl: ‘/app/templates/home.html‘,
                controller: ‘HomeController‘, //也可以写成HomeController as home
                controllerAs: ‘home‘
            })
            .state(‘schools‘,{
                url: ‘/schools‘,
                controller: ‘AllSchoolController‘,
                controllerAs: ‘schools‘,
                templateUrl: ‘/app/templates/allSchools.thml‘
            })
            .state(‘classrooms‘,{
                url:‘/classrooms‘,
                controller: ‘AllClassroomsController‘,
                controllerAs: ‘classrooms‘,
                templateUrl: ‘/app/tempates/allClassrooms.html‘
            })
            .state(‘activities‘, {
                url: ‘/activities‘,
                controller: ‘AllActivitiesController‘,
                controllerAs: ‘activities‘,
                templateUrl: ‘/app/templates/allActivities.html‘
            })
    }]);
}());

未完待续~~

时间: 2024-08-02 02:51:29

AngularJS路由系列(3)-- UI-Router初体验的相关文章

AngularJS路由系列(6)-- UI-Router的嵌套State

本系列探寻AngularJS的路由机制,在WebStorm下开发.本篇主要涉及UI-Route的嵌套State. 假设一个主视图上有两个部分视图,部分视图1和部分视图2,主视图对应着一个state,两个部分视图分别对应state1和state2,那state与state1和state2形成了嵌套关系. AngularJS路由系列包括: 1.AngularJS路由系列(1)--基本路由配置2.AngularJS路由系列(2)--刷新.查看路由,路由事件和URL格式,获取路由参数,路由的Resolv

AngularJS路由系列(5)-- UI-Router的路由约束、Resolve属性、路由附加数据、路由进入退出事件

本系列探寻AngularJS的路由机制,在WebStorm下开发.主要包括: ● UI-Router约束路由参数● UI-Router的Resolve属性● UI-Router给路由附加数据● UI-Router的onEnter和onExit事件 AngularJS路由系列包括: 1.AngularJS路由系列(1)--基本路由配置2.AngularJS路由系列(2)--刷新.查看路由,路由事件和URL格式,获取路由参数,路由的Resolve3.AngularJS路由系列(3)-- UI-Rou

AngularJS路由系列(2)--刷新、查看路由,路由事件和URL格式,获取路由参数,路由的Resolve

本系列探寻AngularJS的路由机制,在WebStorm下开发.主要包括: ● 刷新路由● 查看当前路由以及所有路由● 路由触发事件● 获取路由参数 ● 路由的resolve属性● 路由URL格式 项目文件结构 node_modules/ public/.....app/..........bower_components/...............toastr/....................toastr.min.css....................toastr.min

AngularJS路由系列(1)--基本路由配置

本系列探寻AngularJS的路由机制,在WebStorm下开发.主要包括: ● 路由的Big Picture ● $routeProvider配置路由 ● 使用template属性 ● 使用templateUrl属性 ● redirectTo属性,接受字符串 ● redirectTo属性,接受函数 ● 使用caseInsensitiveMatch属性,禁止大小写敏感 ● 使用otherwise属性 项目文件结构 node_modules/public/.....app/..........bo

新开普实习 UI设计初体验

清明节前的十天,我们学校组织参加了新开普的实习,实习时间是十天,我选的项目是UI设计,在此处做一下每天所做和感受的记录:  2018.3/27   学习内容:APP应用图标,ios应用图标规范,ios安卓图标的区别,设计规范,图标绘制方法,齿轮扁平型图标的绘制 当日感受:了解了一个app图标设计的步骤和要求,需要细致安排处理  2018.3/28   学习内容:六个图标的制作,一起展示时的操作,扁平化UI设计规范技巧:扁平化图标和拟物化图标的区别特点:微扁平化图标 设计 当日感受:UI设计要细致

git系列1之安装初体验(windows)

1.百度云盘地址 https://pan.baidu.com/s/1o8vAt78 2.下载后双击直接下一步下一步即可 3.创建一个目录,并在目录中创建文件README.CD 4.把项目放入git中进行管理 右击鼠标,选择bash窗口 第一个要配置的是你个人的用户名称和电子邮件地址.这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录 $ git config --global user.name "John Doe" $

Office 365系列之三:Office365初体验

在上一章节中我们已经成功申请注册全球版微软Office 365 商业高级版了,试用期是30天.接下来跟大家一起检查下具备哪些服务和订阅,怎么去延长试用期,怎么去查看并确保各种服务是正常的. 登陆Office 365管理中心,如下图: 将下拉框拉到最底部,可看到各个服务状态,确保当前的运行状况均为"没有问题"(刚注册一般需要等待15分钟左右) 在仪表板页面,点击"查看和编辑您的订阅" 跳转到"订阅"页面后即可看到订阅的服务.状态.许可证数量等信息,

小马哥-Java 微服务实践 - Spring Boot 系列-01Java 微服务实践 - Spring Boot 系列(一)初体验

课程github地址 https://github.com/mercyblitz/segmentfault-lessons 传统的web应用架构.微服务是一种架构.不限定什么语言 单体应用和微服务的对比 SOA 微服务的发展史 rpc更讲究面向接口 socket更面向于底层 分布式的,也叫作进程外的 业务处理的结果一般返回给服务组件. rest可以是json.xml.html.为什么很多会会选择json,json的格式比较简单清晰. 微服务面临的挑战 表达式驱动依赖反射驱动 目录概要 demo

[转]AngularJS 使用 UI Router 实现表单向导

本文转自:http://www.oschina.net/translate/angularjs-multi-step-form-using-ui-router 今天我们将使用AngularJs和伟大的UI Router以及Angular ngAnimate module创建一个带动画的多步表单.这项技术可以用在你想要简化用户操作的大表单上. 我们看到这项技术已经应用在了许多的网页上.比如购物车,注册表单,入职流程以及许多多步表单,让用户更容易在线填写表单. 下面我们将构建它: 使用UI Rout