发表于: 2017-07-01 22:32:25
2 909
今天完成的事情:
关于我们、联系我们的静态页面编写。
路由的搭建:
var app = angular.module("app", ['ui.router', 'oc.lazyLoad']);
app.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/homePage");
$stateProvider
.state("pageTab",{
url: "",
templateUrl: "views/pageTab.html",
abstract: true,
resolve: {
loadMyFile: ["$ocLazyLoad", function($ocLazyLoad) {
return $ocLazyLoad.load(['style/page/pageTab.css'], {serie: true});
}]
}
})
.state("pageTab.homePage", {
url: "/homePage",
templateUrl: "views/homePage.html",
resolve: {
loadMyFile: ["$ocLazyLoad", function($ocLazyLoad) {
return $ocLazyLoad.load(['style/page/homePage.css', 'script/controller/homePage.js'], {serie: true});
}]
}
})
.state("pageTab.findJob", {
url: "/findJob",
templateUrl: "views/findJob.html",
resolve: {
loadMyFile: ["$ocLazyLoad", function($ocLazyLoad) {
return $ocLazyLoad.load(['style/page/findJob.css', 'script/controller/findJob.js'], {serie: true});
}]
}
})
});
这里我发现了一个坑:
做任务时我们采用路由重定向的时候,都是用$urlRouterProvider.when的写法,今天我查了下资料,发现这样写是不太好的,最好的写法应该是 $urlRouterProvider.otherwise。
when()
该函数需要两个参数:1.当前的路径,2.需要重定向到的路径(或者是需要在路径被访问是运行的函数)。设置重定向前需要为$urlRouterProvider设置when函数来接受一个字符串。例如,当希望重定向一个空的路由到/inbox:
.config(function($urlRouterProvider) {
$urlRouterProvider.when('', '/inbox');
});
如果传递的是函数,在路径被匹配时该函数会被执行,处理器返回如下3个值中的一个: - falsy,该回应告诉$urlRouter没有匹配到当前url规则,应该尝试匹配新的路径,这样能保证用户访问了正常的路径。 - 字符串,$urlRouter将该字符串当做重定向的路径。 - TRUE 或者 undefined,该回应告诉$urlRouter,url已被处理
otherwise()
和ngRoute的otherwise()函数相似,在用户提交的路径没有被定义的时候它将重定向到指定的页面。这是个创建’默认‘路径的好方法。 otherwise()只接受一个参数,要么函数要么字符串,字符串必须为合法的url路由地址,函数则会在没有任何路径被匹配的时候被运行。
.config(function($urlRouterProvider) {
$urlRouterProvider.otherwise('/');
// or
$urlRouterProvider.otherwise(
function($injector, $location) {
$location.path('/');
});
});
其实除了上面两种方法,还有一个方法也是可以的:
rule()
如果想越过任何URL的匹配或者在其他路由前做路由修改,则可以使用rule()函数。在使用它的时候必须返回一个合法的代表路径的字符串。
app.config(function($urlRouterProvider){
$urlRouterProvider.rule(
function($injector, $location) {
return '/index';
});
})
明天计划的事情:
继续路由的搭建,然后开始常量的编写。
遇到的问题:
暂无
收获:
ui-router重定向的三种方法
评论