Angularjs 除非是在普通情况下,否则无法使ui路由器的各个部分对齐
我希望能够将ui路由命令附加到任何模块的配置函数,并获得按状态命名组织的统一状态层次结构:root、root.sub、sub.detail等。但我似乎只能在附加到主应用程序模块的配置中定义路由,而不能在任何子模块和 尽管我已经尝试了很多(全部?)变体,但如果假设我的索引包括:Angularjs 除非是在普通情况下,否则无法使ui路由器的各个部分对齐,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我希望能够将ui路由命令附加到任何模块的配置函数,并获得按状态命名组织的统一状态层次结构:root、root.sub、sub.detail等。但我似乎只能在附加到主应用程序模块的配置中定义路由,而不能在任何子模块和 尽管我已经尝试了很多(全部?)变体,但如果假设我的索引包括:,我就不会满足于期望以下内容可以工作 var-app=angular.module('shell.module',['sub.module'])) app.config(函数($stateProvider){ $stateP
,我就不会满足于期望以下内容可以工作
var-app=angular.module('shell.module',['sub.module']))
app.config(函数($stateProvider){
$stateProvider
.state(“shell”{
观点:{
url:“/”,
模板:“”
}
})
var sub=角度模块('子模块',[]);
sub.config(函数($stateProvider){
$stateProvider
.state('shell.sub'{
观点:{
url:“/sub”,
模板:“令人满意的内容!”
}
})
});
似乎正确的是,如果子状态未命名,则子状态模板将替换索引中的根状态内容。但如果两者都命名,则根状态包含:
<div ui-view="shell" class="ng-scope>
<div ui-view="sub" class="ng-scope"></div>
</div>
您的状态定义不正确
视图对象应包含视图名称作为键,控制器/模板等作为值
此外,子州默认情况下会将其内容粘贴到其父州的未命名视图中。您没有任何未命名视图,因此必须为视图对象提供不同的语法
我认为您的代码应该如下所示:
app.config(function($stateProvider) {
$stateProvider
.state('shell', {
url: '/',
views: {
'' {
template: '<div ui-view="area"></div>'
}
}
})
var sub = angular.module('sub.module',[]);
sub.config(function($stateProvider) {
$stateProvider
.state('shell.sub', {
url: 'sub/',
views: {
'area@shell': {
template: 'satisfying content!'
}
}
})
});
app.config(函数($stateProvider){
$stateProvider
.state(“shell”{
url:“/”,
观点:{
'' {
模板:“”
}
}
})
var sub=角度模块('子模块',[]);
sub.config(函数($stateProvider){
$stateProvider
.state('shell.sub'{
url:“sub/”,
观点:{
'area@shell': {
模板:“令人满意的内容!”
}
}
})
});
此外,您的url位于错误的位置并且创建不正确。子视图url是通过将父视图的url前置到子视图url来创建的。因此,在您的情况下,“shell.sub”url应该是//sub
,这是错误的。我修复了此问题
我想你还有更多的文件要读:)这对我来说确实有效!谢谢你的解释。如果“shell”状态的视图名为“shell”,效果也一样好。但是,我更大的目标是实现更好的评论:只有当“shell”状态的视图名为“shell”时,这才对我有效……我不确定这是否是我所需要的一切,但你让我进入了新的阶段方向正确,谢谢,
app.config(function($stateProvider) {
$stateProvider
.state('shell', {
url: '/',
views: {
'' {
template: '<div ui-view="area"></div>'
}
}
})
var sub = angular.module('sub.module',[]);
sub.config(function($stateProvider) {
$stateProvider
.state('shell.sub', {
url: 'sub/',
views: {
'area@shell': {
template: 'satisfying content!'
}
}
})
});