路由-when-resolve
文件列表:luyou.html,app.js,home.html,user.html,wy.json
luyou.html
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<meta charset="UTF-8">
<title>angular</title>
</head>
<body>
<div ng-controller="myController">
<p>我是主界面index.html</p>
<!--<ng-view></ng-view>-->
<div ng-view=""></div>
<!--<div class="ng-view"></div>-->
</div> </body>
<script src="angular.js" type="text/javascript" charset="utf-8"></script>
<script src="../angular-route.js" type="text/javascript" charset="utf-8"></script>
<script src="app.js" type="text/javascript" charset="utf-8"></script>
</html>
app.js
angular.module("myApp", ["ngRoute"])
.config(["$routeProvider", "$locationProvider", function($routeProvider,$locationProvider) {
$routeProvider.when("/", {
templateUrl: "home.html",
controller: "homeController",
resolve: {
//该对象对应的所有方法和属性都可以注入到控制器中
//该对象属性所对应的值,必须是服务名
//函数中的参数必须是服务名
callBoy: "callBoy",
getData: function(getD) {
return getD;
}
},
//如果值为true,每次查询参数发生改变都会引起路由的刷新,否则不刷新
reloadOnSearch: false, });
$locationProvider.hashPrefix("!"); $routeProvider.when("/user/:name/:password", {
templateUrl: "user.html",
controller: "userController",
//重定向
// redirectTo:"/user/a/b",
// redirectTo: function(a, b, c) {
// //参数1:代表一个对象,对象里面的属性都是路由参数
// //参数2:路由的路径
// //参数3:查询参数
// console.log(a, b, c);
// return "/home";
// }
})
$routeProvider.otherwise("/");
}])
.controller("myController", function($scope) {
$scope.name = "myCtrl-name";
})
.controller("homeController", function($scope, $location, callBoy, getData) {
$scope.name = "home-name";
// console.log(callBoy);
// console.log(getData.data);
var num = Math.floor(Math.random() * 101);
$scope.homeclick = function() {
// $location.path("/user");
console.log("开始跳转");
$location.search("password=abc");
$location.path("/user/张三/abcd");
};
$scope.queryFn = function() {
$location.search("num=" + num);
}
})
.controller("userController", function($scope, $location) {
$scope.name = "user-name";
$scope.userclick = function() {
$location.path("/");
}
})
.factory("callBoy", function() {
return "d";
})
.factory("getD", function($http) {
return $http({
method: "get",
url: "../wy.json",
})
})
home.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>home</h1>
<p>我的名字:{{name}}</p>
<button ng-click="homeclick()">user</button>
<button ng-click="queryFn()">查询</button>
</body>
</html>
user.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>user</h1>
<p>我的名字:{{name}}</p>
<button ng-click="userclick()">返回</button>
</body>
</html>
****************************************************分割线****************************************************
angular.module("myApp", ["ngRoute"])
.config(["$routeProvider", function($routeProvider) {
$routeProvider.when("/home", {
templateUrl: "home.html",
controller: "homeController"
})
$routeProvider.otherwise("/home");
}])
.controller("homeController", function($scope,$location,$window) {
// $location实际上是对window中location的封装
// $location没有刷新页面的功能,如果需刷新可以注入$window,
// 使用$windowlocation.reload()方法刷新界面 $scope.btnAction = function (){
$window.location.reload();
}
// 路由路径
console.log("路由路径:" + $location.path());
console.log("获取编码后的完整地址:"+ $location.absUrl());
console.log("主机名:"+$location.host());
console.log("端口号:"+$location.port());
console.log("协议:"+$location.protocol());
console.log("设置查询串:"+$location.search("name=zhangsan"));
console.log("获取路径:"+$location.url());
console.log("设置路径,查询参数,返回对象:"+$location.url());
})
路由-when-resolve的更多相关文章
- AngularJS路由系列(2)--刷新、查看路由,路由事件和URL格式,获取路由参数,路由的Resolve
本系列探寻AngularJS的路由机制,在WebStorm下开发.主要包括: ● 刷新路由● 查看当前路由以及所有路由● 路由触发事件● 获取路由参数 ● 路由的resolve属性● 路由URL格式 ...
- 路由的Resolve机制(需要了解promise)
angular的resovle机制,实际上是应用了promise,在进入特定的路由之前给我们一个做预处理的机会 1.在进入这个路由之前先懒加载对应的 .js $stateProvider .state ...
- AngularJS路由系列(5)-- UI-Router的路由约束、Resolve属性、路由附加数据、路由进入退出事件
本系列探寻AngularJS的路由机制,在WebStorm下开发.主要包括: ● UI-Router约束路由参数● UI-Router的Resolve属性● UI-Router给路由附加数据● UI- ...
- angular2系列教程(十一)路由嵌套、路由生命周期、matrix URL notation
今天我们要讲的是ng2的路由的第二部分,包括路由嵌套.路由生命周期等知识点. 例子 例子仍然是上节课的例子:
- angular路由守卫
路由守卫是指当用户满足了某些要求之后才可以离开或者进入某个页面或者场景的时候使用.比如说只有当用户填写了用户名和密码之后才可以进入首页,比如说用户离开某个页面时明月保存信息提示用户是否保存信息后再离 ...
- Angular系列文章之angular路由
路由(route),几乎所有的MVC(VM)框架都应该具有的特性,因为它是前端构建单页面应用(SPA)必不可少的组成部分. 那么,对于angular而言,它自然也有内置的路由模块:叫做ngRoute. ...
- Angular4学习笔记(三)- 路由
路由简介 路由是 Angular 应用程序的核心,它加载与所请求路由相关联的组件,以及获取特定路由的相关数据.这允许我们通过控制不同的路由,获取不同的数据,从而渲染不同的页面. 相关的类 Routes ...
- AngularJS路由系列(6)-- UI-Router的嵌套State
本系列探寻AngularJS的路由机制,在WebStorm下开发.本篇主要涉及UI-Route的嵌套State. 假设一个主视图上有两个部分视图,部分视图1和部分视图2,主视图对应着一个state,两 ...
- AngularJS路由系列(4)-- UI-Router的$state服务、路由事件、获取路由参数
本系列探寻AngularJS的路由机制,在WebStorm下开发.主要包括: ● UI-Router的$state服务● UI-Router的路由事件● UI-Router获取路由参数 Angular ...
- AngularJS路由系列(3)-- UI-Router初体验
本系列探寻AngularJS的路由机制,在WebStorm下开发. AngularJS路由系列包括: 1.AngularJS路由系列(1)--基本路由配置2.AngularJS路由系列(2)--刷新. ...
随机推荐
- c#关于时间TimeHelper类的总结
using System; namespace DotNet.Utilities{ /// <summary> /// 时间类 /// 1.SecondToMinute( ...
- CCNA网络工程师学习进程(10)NAT的配置
NAT(Network Address Translation,网络地址转换)是将IP 数据包头中的IP 地址转换为另一个IP 地址的过程. (1)NAT简介: 在实际应用中,NAT ...
- laravel 框架memcache的配置
Laravel5框架在Cache和Session中不支持Memcache,看清了是Memcache而不是Memcached哦,MemCached是支持的但是这个扩展真的是装的蛋疼,只有修改部分源码让其 ...
- C# 调用CMD执行命令行
这几天用c#做了一个项目,其中一个功能是要把生成的临时文件隐藏,同时,不能在屏幕上有调用CMD的痕迹,这里生成的临时文件的绝对路径为delfile为文件的绝对路径, 代码如下: private voi ...
- 七个 Android 程序猿提高效率必备工具
Android 程序猿提高效率必备工具 0x00 Code tree for GitHub 这个 Chrome 浏览器插件.Github 作为最大同性交友网站,每天的工作几乎是从打开这个网站开始的.当 ...
- Redis基础学习(一)—Redis的安装
一.Redis的安装 1.在Linux环境下安装gcc环境 yum install gcc-c++ 2.解压缩Redis源码包 tar -zxf redis-3.0.0.tar.gz 3.编译 ...
- Learning to Rank简介
Learning to Rank是采用机器学习算法,通过训练模型来解决排序问题,在Information Retrieval,Natural Language Processing,Data Mini ...
- 配置WampServer以及搭建WordPress的一些问题,持续总结。
这里用的版本是Wampserver2.4-x64. Wamp的安装就不赘述了,一路点通过就可以了. #注意:(最好别改,省的麻烦) 80端口是Apache 的默认端口,在httpd.conf文件中配置 ...
- ES6 深入let的作用域
说到ES6的let变量声明,我估计很多人会想起下面几个主要的特点: 没有变量声明提升 拥有块级作用域 暂时死区 不能重复声明 很多教程和总结基本都说到了这几点(说实话大部分文章都大同小异,摘录的居多) ...
- Css清除浮动最优方式之一
---恢复内容开始--- .container:before, .container:after { display: table; content: " "; } .contai ...