AngularJS:UI-路由器(嵌套视图)和引导选项卡不能很好地播放
angularjs: ui-router (nested view) and bootstrap tabs not playing nice
http://plnkr.co/edit/F5jojPEBVaAIyMa0CXDw
我在让 ui 路由器将片段加载到引导选项卡正文中时遇到问题。我在上面链接了我的代码示例。如果我错过了什么,请告诉我。我看了 10 个不同的堆栈溢出示例,但没有一个帮助解决了我的问题。
我有一个外部 ui 视图,可以很好地加载初始页面片段。
<div id="view" ui-view></div>
接下来,我有加载的片段(这是设置选项卡的地方)
<div class="row">
<div class="col-lg-10 col-lg-offset-1">
<ul id="tabs" class="nav nav-tabs" data-tabs="tabs">
<li ng-repeat="tab in tabs" ui-sref="{{tab.link}}" ui-sref-active="active"><a>{{tab.label}}</a></li>
</ul>
<div id="my-tab-content" class="tab-content" ui-view="tabs"></div>
</div>
</div>
之后,我有两个片段页面,用于测试,其中只有一些文本(request-tab.html和approved-tab.html)
最后,我有路由视图的 js 文件。我省略了控制器以缩短帖子。如果需要,它们会在堆积器上,但它们不应该成为问题。
var app = angular.module("BRAVO", ['ui.router', 'ui.bootstrap', 'ui.bootstrap.tpls']);
app.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/requestView/request');
$stateProvider
/* Main Views */
.state('requestView', {
url: '/requestView',
templateUrl: 'bravo_home.html',
controller: 'requestCtrl'
})
/*Other states here*/
/* Tabs */
.state('requestView.request', {
url: '/request',
view: {
'tabs': {
templateUrl: 'request-tab.html',
controller: 'requestTabCtrl'
}
}
})
.state('requestView.approved', {
url: '/approved',
view: {
'tabs': {
templateUrl: 'approved-tab.html'
}
}
});
})
> plunker
<div class="row">
<div class="col-lg-10 col-lg-offset-1">
<ul id="tabs" class="nav nav-tabs" data-tabs="tabs">
<li ui-sref-active="active" ng-repeat="tab in tabs"><a ui-sref="{{tab.link}}" >{{tab.label}}</a></li>
</ul>
<div id="my-tab-content" class="tab-content" ui-view="tabs"></div>
</div>
</div>
你应该像这样设置你的状态:
$stateProvider
/* Main Views */
.state('requestView', {
url: '/requestView',
templateUrl: 'bravo_home.html',
controller: 'requestCtrl'
})
/*Other states here*/
/* Tabs */
.state('requestView.request', {
url: '/request',
templateUrl: 'request-tab.html'
})
.state('requestView.approved', {
url: '/approved',
templateUrl: 'approved-tab.html'
});
然后,在你的bravo_home.html:<div id="my-tab-content" class="tab-content" ui-view></div>
请注意,我删除了 ="选项卡"。您可以根据需要将控制器添加到嵌套选项卡状态,例如:
// add "controller: 'requestTabCtrl'" to state
.controller("requestTabCtrl", function($scope) {
console.log('Hello Request Tab');
})
// add "controller: 'approvedTabCtrl''" to state
.controller("approvedTabCtrl", function($scope) {
console.log('Hello Approved Tab');
});
相关文章:
- click()不会'不能使用选项标记
- select2 使用 AJAX 加载数据不能选择任何选项
- AngularStrap Select和ng选项don'使用动态数组不能很好地工作
- Internet Explorer 不能使用基于 php 生成的选择选项值的 JavaScript 函数
- jQuery不能基于选择选项显示/隐藏元素
- 不能发送超过 12 个单选按钮和表单操作邮件中的复选框选项
- 购物车:Paypal或谷歌结账选项有效,但不能两者兼而有之
- 填充选择选项不'不能使用selectpicker类
- jQuery代码不能在选项卡中工作
- getElementById selected不能选择多个选项
- 所选选项值不能重置
- 没有resolve选项,Angularjs ui bootstrap modal不能工作
- jQuery UI不能在选项卡中工作
- 不能使用Select2以编程方式选择选项
- JS:电子邮件客户端弹出后,不能关闭当前窗口/选项卡
- 不能移除多个选择标签内的选项范围
- 引导模式框不能在远程选项卡中工作
- Dojo选择设置值不能与动态生成的选项一起工作
- Chrome扩展不能打开所有的"输入类型="新选项卡中的按钮
- 下拉选项不能使用jquery选择器访问