ui-router使用方法

index.html页面

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title></title>

<script type="text/javascript" src="js/angular.min.js" ></script>

<script type="text/javascript" src="js/angular-ui-router.js"></script>

</head>

<body ng-app="myApp">

<h1>AngularJS Home Page </h1>

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

<script>

var myApp = angular.module("myApp", [‘ui.router‘]);

myApp.config([‘$stateProvider‘, ‘$urlRouterProvider‘, function ( $stateProvider, $urlRouterProvider ) {

$urlRouterProvider.otherwise(‘/‘);

$stateProvider.state(‘PageTab‘, {

url: ‘/‘,

templateUrl: ‘pageTab.html‘,

}).state("PageTab.Page1", {

url:"Page1",

views:{ps:这里的“”名字对应ui-view=""的值,说明一个页面可以有多个ui-view

"":{ templateUrl: "page1.html"},

"abc": {templateUrl: "page2.html"}

},

controller:function($scope){

}

})

.state("PageTab.Page2", {

url:"Page2",

templateUrl: "page2.html",

controller:
‘page2Ctrl‘,

css:
‘page1/page2.css‘

})

.state("PageTab.Page3", {

url:"Page3",

templateUrl: "page3.html"

});

}]);

</script>

</body>

</html>

pageTab.html页面

<div>

<div>

<span style="width:100px"><a ui-sref=".Page1">Page-1</a></span>

<span style="width:100px"><a ui-sref=".Page2">Page-2</a></span>

<span style="width:100px"><a ui-sref=".Page3">Page-3</a></span>

</div>

<div>

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

<div ui-view="abc"></div>

</div>

</div>

</div>

page1.html页面

<div>

<div>

<h1>Page 1 content goes here...</h1>

</div>

</div>

page2.html页面

<div>

<div>

<h1>Page 2 content goes here...</h1>

</div>

</div>

这里就是多个view的情况

$state.go(‘index.a‘)

$state.go(‘^‘)到上一级,比如从photo.a到index

$state.go(‘^.b‘)到相邻state,比如从index.a到index.b

$state.go(‘^.index.a‘)到孙子级state,比如从index.a到index.a.a

多页面的时候加载不同的js

//注入不同页面的controller

app.config([‘$controllerProvider‘, ‘$compileProvider‘, ‘$filterProvider‘, ‘$provide‘, function ($controllerProvider, $compileProvider, $filterProvider, $provide) {

app.controller = $controllerProvider.register;

app.directive = $compileProvider.directive;

app.filter = $filterProvider.register;

app.factory = $provide.factory;

app.service = $provide.service;

app.constant = $provide.constant;

app.value = $provide.value;

}]);

//实现不同

$stateProvider.state(‘PageTab‘, {

url: ‘/PageTab‘,

templateUrl: ‘PageTab.html‘,

}).state("PageTab.Page1", {

url:"/Page1",

templateUrl: ‘Page1.html‘,

resolve:{

deps:[‘$ocLazyLoad‘,function($ocLazyLoad){

return $ocLazyLoad.load(‘page1.js‘).then(function(){

console.log(‘loaded!!‘);

},function(e){

console.log(‘errr‘);

console.error(e);

});

}]

},

})

时间: 2024-10-06 06:28:39

ui-router使用方法的相关文章

ngRoute 和 ui.router 的使用方法和区别

在单页面应用中要把各个分散的视图给组织起来是通过路由机制来实现的.本文主要对 AngularJS 原生的 ngRoute 路由模块和第三方路由模块 ui.router 的用法进行简单介绍,并做一个对比. ngRoute 使用方法 1) 引入 angular-route lib 无论是 ngRoute 还是 ui.router ,作为框架额外的附加功能,都必须以 模块依赖 的形式被引入. 1 <script src="lib/angular-route.js"></sc

Angularjs中UI Router全攻略

摘自:Angularjs中UI Router全攻略 温馨提示:想要了解 angular-ui-router的同学,从上往下读一遍,能带随着coding那就更好了,保证你对angular-ui-router基本全部掌握. 如何引用依赖angular-ui-router angular.module('app',["ui.router"]) .config(function($stateProvider){ $stateProvider.state(stateName, stateCofi

Angularjs中UI Router用法小记录

今天自己参考已有的项目代码学习了下UI Router的用法,写了个小demo,验证了下自己的想法,现把使用情况记录一下. 1.入口文件index.html,引入项目所需的js文件,标注ng-app,创建ui-view元素,为后面的嵌套做容器准备. <!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <meta charset="UTF-8">

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

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

Android子线程更新UI主线程方法之Handler

背景: 我们开发应用程序的时候,处于线程安全的原因子线程通常是不能直接更新主线程(UI线程)中的UI元素的,那么在Android开发中有几种方法解决这个问题,其中方法之一就是利用Handler处理的. 下面说下有关Handler相关的知识. 多线程一些基础知识回顾:在介绍Handler类相关知识之前,我们先看看在Java中是如何创建多线程的方法有两种:通过继承Thread类,重写Run方法来实现通过继承接口Runnable实现多线程 具体两者的区别与实现,看看这篇文章中的介绍:http://de

angular : $location &amp; $state(UI router)的关系

次序:angular 的 location会先跑 $rootScope.$on("$locationChangeStart", function (scope, newUrl, oldUrl) { log("$locationChangeStart from " + oldUrl) log("$locationChangeStart to " + newUrl) }); 接着是 ui router $state $rootScope.$on(&q

android异步更新UI界面的方法

在android平台下,进行多线程编程时,经常需要在主线程之外的一个单独的线程中进行某些处理,然后更新用户界面显示.但是,在主线线程之外的线程中直接更新页面显示的问题是:系统会报这个异常,android.view.viewroot$calledfromwrongthreadexception: only the original thread that created a view hierarchy can touch its views. (只有原始创建这个视图层次(view hierach

angular 的ui.router 定义不同的state 对应相同的url

Angular UI Router: Different states with same URL? The landing page of my app has two states: home-public, home-logged-in. Now I want to show both states on the same URL, but let the controller and template depend on the user session (is the user log

【基础】多线程更新窗体UI的若干方法

一.前言 在单线程中设置窗体某个控件的值很简单的事,只需要设置控件文本的值就可以了,但是有的业务场景很是复杂,界面上的控件也很多,这种情况下当数据量比较多的时候,在单线程中更新UI不可避免地会发生假死或卡顿现象,用户体验十分不爽,所以必须采用多线程来处理数据和UI.但是如果直接添加一个线程来更新控件信息,就会抛出错误,很显然微软并不希望我们这样做,因为UI控件不是线程安全的,如果随意地在任何线程中改变控件的值,会发生各种奇怪的问题,多个线程间会争夺资源,没有秩序地更改控件的值,显然这是我们不想看

UI线程异常处理方法

当应用程序启动,创建了一个叫“main”的线程,用于管理UI相关,又叫UI线程.其他线程叫工作线程(Work Thread). Single Thread Model 一个组件的创建并不会新建一个线程,他们的创建都在UI线程中进行,包括他们的回调方法,如onKeyDown(). 当在UI线程中进行某些耗时的操作时,将会阻塞UI线程,一般阻塞超过5秒就会显示一个ANR对话框(弹出程序无反应的对话框). UI线程是非线程安全的,所以,不能在工作线程中操作UI元素. 两个原则 Do not block