ui路由器中基于查询的同级视图路由
query-based routing of sibling views in ui-router
假设我的应用程序有两面:"左"answers"右"。每一边都有标签。管理应用程序的URL如下所示:
app/splitscreen/?leftTab=1&rightTab=1
到目前为止,我有以下HTML模板:
<!-- splitscreen.tpl.html -->
<!-- left side -->
<a ui-sref="splitscreen({leftTab: 1})">Left tab 1</a>
<a ui-sref="splitscreen({leftTab: 2})">Left tab 2</a>
<div ui-view="left"></div>
<!-- right side -->
<a ui-sref="splitscreen({rightTab: 1})">Right tab 1</a>
<a ui-sref="splitscreen({rightTab: 2})">Right tab 2</a>
<div ui-view="right"></div>
这是我的状态:
$stateProvider.state('splitscreen', {
url: '/splitscreen?leftTab&rightTab',
views: {
'app': {
templateUrl: 'splitscreen.tpl.html'
},
'left@splitscreen': {
template: 'I''m left'
},
'right@splitscreen': {
template: 'I''m right'
}
}
});
问题是,单击选项卡会重新加载整个'splitscreen'
状态。我只想更新'left'
和'right'
视图的内容。我该怎么做?
我尝试在'splitscreen'
配置中设置reloadOnSearch: false
,但随后我的选项卡变得根本无法单击。
这是一个灌篮器。
所以,ui路由器似乎无法完成我想要的任务。太糟糕了。
我暂时用解决了这个问题
<a
ng-click="setTab('1')"
ng-class="'tab' + (getTab() === '1' ? '--selected' : '')">
Tab 1
</a>
<a
ng-click="setTab('2')"
ng-class="'tab' + (getTab() === '2' ? '--selected' : '')">
Tab 2
</a>
<div ng-include="getTabUrl()"></div>
其中功能定义为:
$scope.setTab = function (tabName) {
$location.search('tab', tabName);
};
$scope.getTab = function (tabName) {
return $location.search().tab;
};
$scope.getTabUrl = function () {
return 'foo/' + $scope.getTab() + '.tpl.html';
};
该州有以下选项:
url: '/foo?tab',
reloadOnSearch: false
相关文章:
- 正在使用$location.path(.)路由ng视图
- 发送json对象或使用express路由呈现视图
- 当在ng视图中加载新路由时,Tabbing(tabindex)针对错误的元素
- ui路由器中基于查询的同级视图路由
- UI5 路由不实例化视图
- Angularjs UI视图和Rails服务器端模板路由
- 无法在MEAN应用程序中路由到部分视图
- 在backbone.js中路由视图时传递一个参数
- ng视图路由模板是否反映了ajax请求所做的更改
- Ember.js - CRUD 方案 - 指定从路由内的视图
- 如何在 Express.js 中为路由的子路径呈现不同的视图
- 快速 - 路由中间件 如何确定响应视图是否已呈现
- 如何在角度 JS 路由中保留模板视图
- AngularJS:使用路由记住复杂视图的状态/设置
- 使用主干.js中的路由管理单页应用程序中的多个视图实例
- 角度路由未填充 ng 视图
- AngularJs 路由不再工作.地址栏更改,但视图不会更改
- 加载Angular路由/视图后加载jQuery脚本
- jQTouch和Backbone.js路由/视图
- ReactJS-如何使用ES5路由视图