Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Layout 通过隐藏/显示窗口来管理复杂的UI,而不会失去范围/控制_Layout_Angularjs Scope_Angular Ui_States - Fatal编程技术网

Layout 通过隐藏/显示窗口来管理复杂的UI,而不会失去范围/控制

Layout 通过隐藏/显示窗口来管理复杂的UI,而不会失去范围/控制,layout,angularjs-scope,angular-ui,states,Layout,Angularjs Scope,Angular Ui,States,使用angular js,如何管理允许隐藏和显示窗口(等等)的复杂视图布局。如果使用相同的url路径,我需要在重新打开窗口时不丢失任何状态或范围。这就像显示一个项目列表,并在一个与其他项目平行的窗口中打开每个项目。使用角度和路线时,先前的作用域将被销毁 (#/itemlist -> #/itemlist/item/1 and #/itemlist/item/2) 一个项目打开具有相同状态的多个组件(两个窗口;请移动它们),由角度ui状态管理 每个状态都有自己的控制器,每个控制器都有

使用angular js,如何管理允许隐藏和显示窗口(等等)的复杂视图布局。如果使用相同的url路径,我需要在重新打开窗口时不丢失任何状态或范围。这就像显示一个项目列表,并在一个与其他项目平行的窗口中打开每个项目。使用角度和路线时,先前的作用域将被销毁

  (#/itemlist -> #/itemlist/item/1 and #/itemlist/item/2)
  • 一个项目打开具有相同状态的多个组件(两个窗口;请移动它们),由角度ui状态管理
  • 每个状态都有自己的控制器,每个控制器都有自己的作用域
  • 范围继承可以在以后的扩展原型中设计,但应该独立于视图层次结构
  • 控制器和视图将被范围销毁,或者如果所有视图都被销毁,则控制器和范围也必须被销毁(尚未完全实现)
  • 如果调用路由且存在范围,则相关视图将被重新激活
其思想是使用两个服务来管理/存储控制器,并通过作用域管理/存储相关视图。要隐藏这两个组件的管理,使用通用控制器
$stateProvider
来解析控制器/视图注入:

$stateProvider
.state({
    name : 'item',
    url: '/item/:id',
    views:{
        'genericCtrl' : {
            resolve : {
                views : function() { return ['TestView', 'TestView']; },
                ctrl  : function() { return  'TestCtrl' ; }
            },
            controller : 'GenericCtrl'
        }
    }
})


我不知道这个概念是否有效,或者angular是否有自己的方法(我还没有找到),或者是否存在另一个更好的解决方案。请把你的想法、改进等写下来。这应该是我们大型应用程序的基本概念。

您看过这个吗?angularUI路由器是你想要的,我在一个非常大的应用程序上使用它,有很多深度链接。。。。在销毁控制器时,您希望不丢失的任何持久数据都需要存储在服务中。