Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 除非是在普通情况下,否则无法使ui路由器的各个部分对齐_Angularjs_Angular Ui Router - Fatal编程技术网

Angularjs 除非是在普通情况下,否则无法使ui路由器的各个部分对齐

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

我希望能够将ui路由命令附加到任何模块的配置函数,并获得按状态命名组织的统一状态层次结构:root、root.sub、sub.detail等。但我似乎只能在附加到主应用程序模块的配置中定义路由,而不能在任何子模块和

尽管我已经尝试了很多(全部?)变体,但如果假设我的索引包括:
,我就不会满足于期望以下内容可以工作

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!'
            }
        }
    })
});