相关疑难解决方法(0)

你可以在不重新加载AngularJS控制器的情况下改变路径吗?

以前有人问过,从答案看起来并不好看.我想考虑一下这个示例代码......

我的应用程序加载提供它的服务中的当前项.有几个控制器可以在不重新加载项目的情况下操纵项目数据.

如果尚未设置,我的控制器将重新加载项目,否则,它将使用服务器之间,控制器之间当前加载的项目.

问题:我想为每个控制器使用不同的路径而不重新加载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)

angularjs

185
推荐指数
5
解决办法
16万
查看次数

如何使用angular ui路由器来隐藏和显示视图?

想象一下,应用程序有一个List页面,例如显示用户列表的表.表格的每一行都有一个名为"编辑"的按钮,点击此按钮后,右侧面板将显示在浏览器的右侧,其中包含用于编辑该用户内容的表单.保存表格或关闭表格时,右侧面板消失.

当进入和退出编辑状态时,如何让Angular UI路由器自动显示/隐藏右侧面板?默认情况下,将添加和删除模板,但容器本身仍将存在于屏幕上.

在UI路由器的演示应用程序中,html布局为所有子状态分配了空白区域,但在我正在构建的应用程序中,如果不使用它们甚至将整个屏幕滑动,我真的很想隐藏它们.在进入和退出状态时输出.我猜我必须使用ng-show和ng-hide才能做到这一点.如何使用UI路由器解决这个问题?

谢谢!

javascript jquery angularjs angular-ui-router

35
推荐指数
2
解决办法
4万
查看次数

标签 统计

angularjs ×2

angular-ui-router ×1

javascript ×1

jquery ×1