以前有人问过,从答案看起来并不好看.我想考虑一下这个示例代码......
我的应用程序加载提供它的服务中的当前项.有几个控制器可以在不重新加载项目的情况下操纵项目数据.
如果尚未设置,我的控制器将重新加载项目,否则,它将使用服务器之间,控制器之间当前加载的项目.
问题:我想为每个控制器使用不同的路径而不重新加载Item.html.
1)这可能吗?
2)如果那是不可能的,那么每个控制器的路径是否比我在这里提出的更好?
app.js
var app = angular.module('myModule', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/items', {templateUrl: 'partials/items.html', controller: ItemsCtrl}).
when('/items/:itemId/foo', {templateUrl: 'partials/item.html', controller: ItemFooCtrl}).
when('/items/:itemId/bar', {templateUrl: 'partials/item.html', controller: ItemBarCtrl}).
otherwise({redirectTo: '/items'});
}]);
Run Code Online (Sandbox Code Playgroud)
Item.html
<!-- Menu -->
<a id="fooTab" my-active-directive="view.name" href="#/item/{{item.id}}/foo">Foo</a>
<a id="barTab" my-active-directive="view.name" href="#/item/{{item.id}}/bar">Bar</a>
<!-- Content -->
<div class="content" ng-include="" src="view.template"></div>
Run Code Online (Sandbox Code Playgroud)
controller.js
// Helper function to load $scope.item if refresh or directly linked
function itemCtrlInit($scope, $routeParams, MyService) {
$scope.item = MyService.currentItem;
if (!$scope.item) {
MyService.currentItem = MyService.get({itemId: …
Run Code Online (Sandbox Code Playgroud) 想象一下,应用程序有一个List页面,例如显示用户列表的表.表格的每一行都有一个名为"编辑"的按钮,点击此按钮后,右侧面板将显示在浏览器的右侧,其中包含用于编辑该用户内容的表单.保存表格或关闭表格时,右侧面板消失.
当进入和退出编辑状态时,如何让Angular UI路由器自动显示/隐藏右侧面板?默认情况下,将添加和删除模板,但容器本身仍将存在于屏幕上.
在UI路由器的演示应用程序中,html布局为所有子状态分配了空白区域,但在我正在构建的应用程序中,如果不使用它们甚至将整个屏幕滑动,我真的很想隐藏它们.在进入和退出状态时输出.我猜我必须使用ng-show和ng-hide才能做到这一点.如何使用UI路由器解决这个问题?
谢谢!