我想angular-ui-router
与多个子模块一起在我的应用程序中创建角度嵌套路由;
在“ ui-router
”中,我们可以在主应用程序配置中将多视图用作$stateProvider
,但是当您在其他模块中时,则不能在子模块之间切换。
例如,当您在“ module1
”时,您无法声明为“ module2
”。
那么,如何在模块之间切换?
在此应用程序中,您可以轻松地在子模块之间路由:
mainApp.js
” angular.module("mainApp", [
"ui.router"
]);
angular.module("mainApp").config([
"$stateProvider", "$urlRouterProvider",
function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/");
$stateProvider
.state("/", {
url: "/",
templateUrl: "/Application/Partials/home.html"
});
}
]);
index.html
为您的mainApp 创建“ ”: <!DOCTYPE html>
<html ng-app="mainApp">
<head>
<title>Angular Nested Routes with angula-ui-route</title>
</head>
<body>
<fieldset>
<legend>main menu</legend>
<a ui-sref="/">home</a>
</fieldset>
<ui-view></ui-view>
<script src="/Scripts/jquery-2.1.4.js"></script>
<script src="/Scripts/angular.js"></script>
<script src="/Scripts/angular-ui-router.js"></script>
<!--Main Module-->
<script src="/Application/app.js"></script>
</body>
</html>
创建您的偏爱“ home.html
”
<h1>Home</h1>
registerStateApp
在您的项目中添加“ ”
angular.module("registerStateApp", []);
angular.module("registerStateApp").provider("$registerState", function ($stateProvider) {
var routes = [];
this.$set = function (stateProvider) {
var satetProviders = {
states: stateProvider
}
routes.push(satetProviders);
};
this.$get = function () {
return angular.forEach(routes, function (route) {
angular.forEach(route.states, function (state) {
$stateProvider.state(state.state, {
parent: state.parent,
moduleName: parent,
stateName: child,
name: state.pageName,
url: state.url,
views: state.views,
pageInfo: state.pageInfo
});
});
});
};
});
mainApp.js
&注入”registerStateApp
angular.module("mainApp", [
"ui.router",
"registerStateApp"
]);
angular.module("mainApp").config([
"$stateProvider", "$urlRouterProvider", "$registerStateProvider",
function($stateProvider, $urlRouterProvider, $registerStateProvider) {
$urlRouterProvider.otherwise("/");
//registerStateApp
$registerStateProvider.$get();
//your main application routes
$stateProvider
.state("/", {
url: "/",
templateUrl: "/Application/Partials/home.html"
});
}
]);
angular.module("module1", []);
angular.module("module1").config(["$registerStateProvider",
function($registerStateProvider) {
//This is your routing in sub module
var stateProvider = [{
name: "module1",
state: "module1.page1",
url: "/module1",
views: {
"module1": {
templateUrl: "/Application/Modules/Module1/Partials/page1.html"
}
}
}];
$registerStateProvider.$set(stateProvider);
}
]);
//module2
angular.module("module2", []);
angular.module("module2").config(["$registerStateProvider",
function($registerStateProvider) {
var stateProvider = [{
name: "module2",
state: "module2.page1",
url: "/module2",
views: {
"module2": {
templateUrl: "/Application/Modules/Module2/Partials/page1.html"
}
}
}];
$registerStateProvider.$set(stateProvider);
}
]);
<!DOCTYPE html>
<html ng-app="module1">
<head>
<title>module1</title>
</head>
<body>
<h1>This is module1</h1>
<button ui-sref="module2.page1">go to module2 page 1</button>
<div ui-view="module1"></div>
</body>
</html>
<!--module2-->
<!DOCTYPE html>
<html ng-app="module2">
<head>
<title>module2</title>
</head>
<body>
<h1>This is module2</h1>
<button ui-sref="module1.page1">go to module1 page 1</button>
<div ui-view="module2"></div>
</body>
</html>
mainApp.js
”中添加子模块状态 angular.module("mainApp", [
"ui.router",
"registerStateApp",
"module1",
"module2"
]);
angular.module("mainApp").config([
"$stateProvider", "$urlRouterProvider", "$registerStateProvider",
function($stateProvider, $urlRouterProvider, $registerStateProvider) {
$urlRouterProvider.otherwise("/");
$registerStateProvider.$get();
$stateProvider
.state("/", {
url: "/",
templateUrl: "/Application/Partials/home.html"
})
.state("module1", {
url: "/module1",
templateUrl: "/Application/Modules/Module1/index.html"
})
.state("module2", {
url: "/module2",
templateUrl: "/Application/Modules/Module2/index.html"
});
}
]);
问题内容: 我有这样的结构: 我希望能够在如下所示的主要状态下定义模板,而不必在子状态下进行管理。 我希望命名的ui视图不是其子状态,并由该状态的views对象而不是子状态的templateUrl字段填充。我怎样才能做到这一点? 问题答案: 我们可以在 一种* 状态下使用 更多 视图,请参阅: * 多个命名视图 该定义只需要使用绝对命名即可: 如此处详细说明: 视图名称-相对名称与绝对名称 在幕后
本文向大家介绍angular-ui-router 使用$ state.go在状态之间转换,包括了angular-ui-router 使用$ state.go在状态之间转换的使用技巧和注意事项,需要的朋友参考一下 示例 $state.go 是速记法 $state.transitionTo $state.go(toState [,toParams] [,options]) 此方法自动将您的选项设置为{
本文向大家介绍angular-ui-router 使用$ state.transitionTo在状态之间转换,包括了angular-ui-router 使用$ state.transitionTo在状态之间转换的使用技巧和注意事项,需要的朋友参考一下 示例 用于$state.transitionTo将一种状态转变为另一种状态。这是一种低级过渡方法,$state.go是内部最常用的推荐方法。 $st
本文向大家介绍详解angular笔记路由之angular-router,包括了详解angular笔记路由之angular-router的使用技巧和注意事项,需要的朋友参考一下 本文介绍了angular笔记路由之angular-router,分享给大家,具体如下: 创建项目 路由的基本使用 名称 简介 Routes 路由的配置,保存着哪一个URL对应展示哪一个组件和在哪一个RouterOutler展
问题内容: 建立一个多步骤表单(“向导”)。最初是按照本教程进行的,该教程效果很好,但是现在尝试对其进行调整,因此第一步已嵌入首页中,而不是单独的状态。无论我做什么,我都无法创建一条可行的路径。我总是得到: 无法从状态“ home”解析“ .where” 要么 无法从状态“家”解析“ wizard.where” 要么 无法从状态“ home”解析“ wizard.where @” …即使在中效果很
本文向大家介绍Angular 5.x 学习笔记之Router(路由)应用,包括了Angular 5.x 学习笔记之Router(路由)应用的使用技巧和注意事项,需要的朋友参考一下 序言: Angular APP 视图之间的跳转,依赖于 Router (路由),这一章,我们来讲述 Router 的应用 实例讲解 运行结果如下。 设置了3个导航栏, Home、 About、Dashboard。 点击不