前面我刚写了一篇文章,解释了angular的路由ngRoute模块,为什么还有uiRouter这个插件呢?
1、UI-Router支持嵌套视图,ngRoute不支持
2、UI-Router支持多视图,ngRoute不支持
ngRoute 和 ui-route 相比:
$route —> $state
$routeParams —> $stateParams
$routeProvider —> $stateProvider
<div ng-view></div> —> <div ui-view></div>
所以,我们需要uiRouter。
首先,我们还是需要用ui-view标签划定区域
<div ui-view></div>
在主页面将文件引入,在模块内嵌入模块。
var app = angular.module("mymodule", ["ui.router"]);
然后开始写路由,
app.config(function($stateProvider,$urlRouterProvider){
$urlRouterProvider.otherwise("/index");//未定义的页面显示还是需要ngRoute的otherwise成员方法定义
$stateProvider.state('index', {//index为请求的地址
url: '/index',// 这里的/index为设置在浏览器#后面显示的地址
views: {
'': {//空为主ui-view模块
templateUrl: 'tpls/home.html'//模板地址
},
'main@index': {//这个是设置嵌套在index里面名为main的ui-view
templateUrl: 'tpls/loginForm.html'//模板地址
}
}
}).state("index.page",{//对应的路由为/index/page
url:"/page",
views:{
}
})
});