Rom*_*dik 4 html javascript angularjs angular-ui-router
有嵌套状态的麻烦......
我有一个有几页的应用程序(表示为页面模板).所以,我真的需要使用嵌套状态.阅读文档和示例是无用的......
所以代码在这里.
这是我的状态配置:
myApplication.config(function ($stateProvider, $urlRouterProvider, $httpProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('state1', {
url: '/state1',
views: {
'content': {
templateUrl: /* path to template */
},
'menu': {
templateUrl: /* path to template */
},
'overlay': {
templateUrl: /* path to template */
}
}
})
.state('layer', {
url: '/layer',
views: {
'content': {
templateUrl: /* path to template */
},
'menu': {
templateUrl: /* path to template */
}
}
})
.state('layer.message', {
url: '/message',
views: {
'overlay': {
templateUrl: /* path to template */
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
这是我的HTML视图:
<html>
<body ng-app="myApplication" ng-controller="AppCtrl">
<div id="wrapper">
<!-- Here is some not interesting stuff -->
</div>
<!-- But here is the most exciting things -->
<div id = "overlay" ui-view="overlay"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我在这个子状态中有一个状态'layer'和一个子状态'layer.message'我只想加载一个被调用的额外模板并将其overlay包装在一个div标记中,比如'state1'.但我所有的尝试都失败了.firebug调试工具向我显示模板是通过GET查询加载的.但它不会出现在HTML模型中,因此不会呈现.在'state1'中,一切都很好.我相信我对禁奶状态做错了...有什么建议吗?
mjt*_*tko 14
您的嵌套layer.message状态需要使用"@"后缀明确地处理更高状态的视图,即:
.state('layer.message', {
url: '/message',
views: {
'overlay@': {
templateUrl: /* path to template */
}
}
})
Run Code Online (Sandbox Code Playgroud)
这表示'使用模板填充未命名(根)状态中名为"overlay"的视图.您也可以更明确并指定overlay@layer.
| 归档时间: |
|
| 查看次数: |
5970 次 |
| 最近记录: |