如何在 angular ui 路由器的多个视图上创建嵌套视图?
How to make nested views on multiple views in angular ui router?
我的应用程序非常简单。我有一个包含页眉和正文的主页。在正文部分,我想显示登录页面,如果 URL 更改为 'password/forget',我会显示密码重置表单。我的模板:
index.html :
<header ui-view="header">
</header>
<div class="container-fluid">
<div class="row">
<div ui-view="main">
</div>
</div>
</div>
home.html:
<div ui-view>
</div>
而ui-路由器配置是这样的:
$locationProvider.html5Mode({enabled: true, requireBase: false});
$stateProvider.state('home', {
url: '/',
views: {
'header': {
templateUrl: '/header.html'
},
'main': {
templateUrl: '/home.html'
}
}
}).state('home.forgetPassword', {
url: '/password/forget',
templateUrl: '/forgetPassword.html',
});
现在,当我进入“/password/forget”时,任何事情都会发生,并且 index.html 正在显示。
当路线更改为 "/password/forget" 时,我想显示 forgetPassword.html 。
在 ui-router 的文档中遵循此代码:
myApp.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('state1', {
url: "/state1",
templateUrl: "partials/state1.html"
})
.state('state1.list', {
url: "/list",
templateUrl: "partials/state1.list.html",
controller: function($scope) {
$scope.items = ["A", "List", "Of", "Items"];
}
})
.state('state2', {
url: "/state2",
templateUrl: "partials/state2.html"
})
.state('state2.list', {
url: "/list",
templateUrl: "partials/state2.list.html",
controller: function($scope) {
$scope.things = ["A", "Set", "Of", "Things"];
}
});
});
我的建议是先创建 'password' 状态。
尝试以下解决方案:
$stateProvider.state('home', {
url: '/',
views: {
'header': {
templateUrl: '/header.html'
},
'main': {
templateUrl: '/home.html'
}
}
}).state('password', {
url: '/password',
templateUrl: '/password.html',
}).state('password.forgetPassword', {
url: '/forget',
templateUrl: '/forgetPassword.html',
});
暂时创建文件 'password.html',稍后它可能对 '/password' 视图有用。
问题已解决。它适用于 /
在父状态并在子状态重复它。
我的应用程序非常简单。我有一个包含页眉和正文的主页。在正文部分,我想显示登录页面,如果 URL 更改为 'password/forget',我会显示密码重置表单。我的模板:
index.html :
<header ui-view="header">
</header>
<div class="container-fluid">
<div class="row">
<div ui-view="main">
</div>
</div>
</div>
home.html:
<div ui-view>
</div>
而ui-路由器配置是这样的:
$locationProvider.html5Mode({enabled: true, requireBase: false});
$stateProvider.state('home', {
url: '/',
views: {
'header': {
templateUrl: '/header.html'
},
'main': {
templateUrl: '/home.html'
}
}
}).state('home.forgetPassword', {
url: '/password/forget',
templateUrl: '/forgetPassword.html',
});
现在,当我进入“/password/forget”时,任何事情都会发生,并且 index.html 正在显示。 当路线更改为 "/password/forget" 时,我想显示 forgetPassword.html 。
在 ui-router 的文档中遵循此代码:
myApp.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('state1', {
url: "/state1",
templateUrl: "partials/state1.html"
})
.state('state1.list', {
url: "/list",
templateUrl: "partials/state1.list.html",
controller: function($scope) {
$scope.items = ["A", "List", "Of", "Items"];
}
})
.state('state2', {
url: "/state2",
templateUrl: "partials/state2.html"
})
.state('state2.list', {
url: "/list",
templateUrl: "partials/state2.list.html",
controller: function($scope) {
$scope.things = ["A", "Set", "Of", "Things"];
}
});
});
我的建议是先创建 'password' 状态。
尝试以下解决方案:
$stateProvider.state('home', {
url: '/',
views: {
'header': {
templateUrl: '/header.html'
},
'main': {
templateUrl: '/home.html'
}
}
}).state('password', {
url: '/password',
templateUrl: '/password.html',
}).state('password.forgetPassword', {
url: '/forget',
templateUrl: '/forgetPassword.html',
});
暂时创建文件 'password.html',稍后它可能对 '/password' 视图有用。
问题已解决。它适用于 /
在父状态并在子状态重复它。