Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在更改状态时,如何持久化兄弟用户界面视图?

在更改状态时,如何持久化兄弟用户界面视图?
EN

Stack Overflow用户
提问于 2014-09-12 11:30:38
回答 1查看 1.9K关注 0票数 1

我的应用程序中有两个ui-view指令。一个包含子导航,另一个包含实际的页面内容。我的子导航是一个树结构,当您单击结束节点(或叶)时,应该是更新内容视图的唯一时间。每当您单击子导航中的非叶节点时,我希望内容视图在子导航视图更改时保持不变。

所发生的事情是,每当我切换到不定义一个视图的状态时,视图就会被清除。我希望它能保持我改变状态之前的样子。有人做到了吗?

代码:

代码语言:javascript
运行
AI代码解释
复制
<!--NOTE THAT THESE ARE SIBLING ELEMENTS, NOT NESTED -->
<div id="subNav" ui-view="subNav"></div>
<div id="content" ui-view="content"></div>

这是我的路线设置。注意,State1只应该更新subnav视图,State2应该只更新content视图。

代码语言:javascript
运行
AI代码解释
复制
$stateProvider
  .state('State1', {
    url: '/State1',
    views: {
      "subnav": { 
         templateUrl: "views/subnav.html",
         controller: "SubNavController"
      }
    }
  })
  .state('State2', {
    url: '/State2',
    views: {
      "content": { 
         template: "<p>State 2</p>"
      }
    }
  });

下面是当前正在做的事情的plnkr:http://plnkr.co/edit/TF7x5spB8zFLQPzrgZc9?p=preview

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-12 18:27:35

我想说的是,这条路真的很清楚:

多个命名视图

嵌套状态和嵌套视图

我正在使用这种技术,在非常类似的场景中:左列是列表,右(大面积)是细节的位置。有一个示例

国家发展司将:

代码语言:javascript
运行
AI代码解释
复制
$stateProvider
    .state('index', {
        url: '/',
        views: {
          '@' : {
            templateUrl: 'layout.html',
            controller: 'IndexCtrl'
          },
          'top@index' : { templateUrl: 'tpl.top.html',},
          'left@index' : { templateUrl: 'tpl.left.html',},
          'main@index' : { templateUrl: 'tpl.main.html',},
        },
      })
    .state('index.list', {
        url: '/list',
        templateUrl: 'list.html',
        controller: 'ListCtrl'
      })
    .state('index.list.detail', {
        url: '/:id',
        views: {
          'detail@index' : {
            templateUrl: 'detail.html',
            controller: 'DetailCtrl'
          },
        },
      })

所以在我们的例子中,可能是这样的:

  1. 父状态将具有两个状态的模板(布局),并且还将注入导航条。
  2. 孩子只会将视图注入主区域。

母国:

代码语言:javascript
运行
AI代码解释
复制
.state('State1', {
    url: '/State1',
    views: {
      "bodyArea" { template: "body.thml"},
      "subnav@State1": { 
         templateUrl: "views/subnav.html",
         controller: "SubNavController"
      }
    }
})

因此,我们可以看到,这两种状态的模板,布局都是在State1上定义为放置在"bodyArea“中的视图。

另一个视图(原始视图)通过绝对名称“subnav@State1 1”注入到该模板中。即为一个父状态定义的两个视图.

儿童状况:

代码语言:javascript
运行
AI代码解释
复制
.state('State2', {
    parent: 'State1', // a child needs parent
    url: '/State2',
    views: {
      "content": { 
         template: "<p>State 2</p>"
      }
    }
})

在这里,我们只是说,State1是State2的父级。这意味着“内容”目标/锚(ui-view="content")必须是State1中定义的视图的一部分。这里最好的地方是“body.html”.

扩展:基于注释和这个柱塞以及一些问题,我创建了它的更新版本。到Main1的导航中断(以便进行比较),但是Main2和Main3正在工作。

  • Main2正在工作,因为它具有与index状态类似的def。
  • 另一方面,Main3index状态的子级。

操作中的绝对命名和相对命名应该从这段代码中清楚地看到:

指数:

代码语言:javascript
运行
AI代码解释
复制
$stateProvider
  .state('index', {
    url: '/',
    views: {
      '@': {
        templateUrl: 'layout.html'
      },
      'mainNav@index': {
        template: '<a ui-sref="Main1">Main1</a><br />'
                + '<a ui-sref="Main2">Main2</a><br />'
                + '<a ui-sref="Main3">Main3</a>'
      },
      'subNav@index' : {
        template: '<p>This is the sub navigation</p>'
      }, 
      'content@index': {
        template: '<p>This is the content</p>'
      }
    }
  })

有问题的Main1

代码语言:javascript
运行
AI代码解释
复制
  .state('Main1', {
    url: '/Main1',
    views: {
      /*'mainNav': {

      },*/
      'subNav': {
        template: '<a ui-sref="Sub1">Sub1</a><a ui-sref="Sub2">Sub2</a>'
      },
      'content': {
        template: '<p>This is the content in Main1</p>'
      }
    }
  })

工作状态

代码语言:javascript
运行
AI代码解释
复制
  .state('Main2', {
    url: '/Main2',
    views: {
      '': {
        templateUrl: 'layout.html'
      },
      'mainNav@Main2': {
        template: '<a ui-sref="Main1">Main1</a><br />'
                + '<a ui-sref="Main2">Main2</a><br />'
                + '<a ui-sref="Main3">Main3</a>'
      },
      'subNav@Main2': {
        template: '<a ui-sref="Sub1">Sub for Main2</a>'
      },
      'content@Main2': {
        template: '<p>This is the content in Main2</p>'
      }
    }
  })
  .state('Main3', {
    parent: 'index',  // PARENT does the trick
    url: '/Main3',
    views: {
      'subNav': { // PARENT contains the anchor/target - relative name is enough
        template: '<a ui-sref="Sub1">Sub for Main3</a>'
      },
      'content': {
        template: '<p>This is the content in Main3</p>'
      }
    }
  })
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25815505

复制
相关文章
java动态编译类文件并加载到内存中
  如果你想在动态编译并加载了class后,能够用hibernate的数据访问接口以面向对象的方式来操作该class类,请参考这篇博文-http://www.cnblogs.com/anai/p/4270214.html
程序员一一涤生
2019/09/10
3.2K0
云硬盘怎么挂载到linux?云硬盘可以挂载到任何系统吗?
云产品在现在的网络技术当中非常普遍和常用,很多大型的云产品公司推出了不同类型的硬盘以及云服务器,这些产品可以满足不同企业以及不同个人的网络用品需求,而且可以提供非常多丰富功能。云硬盘在某些公司或者个人使用当中已经取代了硬盘的功能,而且云硬盘拥有容易扩展以及存储文件安全的性能。现在来了解一下云硬盘怎么挂载到linux。
用户8715145
2022/03/23
12.1K0
JVM | 从类加载到JVM内存结构
我在上篇文章:JVM | 基于类加载的一次完全实践 中为你讲解如何请“建筑工人”来做一些定制化的工作。但是,大型的Java应用程序时,材料(类)何止数万,我们直接堆放在工地上(JVM)上吗?相反,JVM有着一套精密的管理机制,来确保类的加载、验证、解析和初始化等任务能够有序且高效地完成。
kfaino
2023/10/02
2820
JVM | 从类加载到JVM内存结构
Linux吃掉我的内存
在Windows下资源管理器查看内存使用的情况,如果使用率达到80%以上,再运行大程序就能感觉到系统不流畅了,因为在内存紧缺的情况下使用交换分区,频繁地从磁盘上换入换出页会极大地影响系统的性能。而当我
顶级程序员
2018/04/26
9970
Linux吃掉我的内存
数据库“炸了”,加CPU加内存?或许还有更好的解决方法!
之前在做业务应用系统压力测试项目的时候,发现大部分性能不达标的应用,问题都出在数据库上。数据库压力过大是每个业务经理都多多少少面临过的问题,那么解决的办法除了纵向提高数据库配置之外,是否还有其他更高效的途径呢?
嘉为蓝鲸
2021/09/01
1.5K0
我叫“毕加所”,不是毕加索。。。
我,腾讯家族的新成员。 跟兄弟姐妹一样,属鹅。 在与世界见面的第一天, 我想用歌声对你们说: 好险好险, 经过产品、PR、运营、技术的一夜battle, 终于,我叫—— 毕加所 来到这个世界上,我有自己的使命。 在歌声里, 你是否记得, 上次认识新同学是哪年? 你们之间有怎样的故事? 同窗时光总是短暂, 让毕业后的相聚更显珍贵。 因此,“毕加所”更要用切实行动告诉你, 毕业从此不散场。 为什么要办“毕加所”? 以AI加速器为始,腾讯按下产业孵化启动键。从AI、SaaS到WeCi
腾讯SaaS加速器
2020/06/09
5070
MONGODB 加索引 大内存 与连锁思维
创建MONGODB 的索引,属于基本操作,但如果是一个有2T 的 collection 要加一个索引,也属于基本操作,实际上量变产生质变,很多问题的考虑都不在那么简单。
AustinDatabases
2020/08/26
2.5K0
Spark在处理数据的时候,会将数据都加载到内存再做处理吗?
对于Spark的初学者,往往会有一个疑问:Spark(如SparkRDD、SparkSQL)在处理数据的时候,会将数据都加载到内存再做处理吗?
大数据学习与分享
2020/09/14
1.3K0
Spark在处理数据的时候,会将数据都加载到内存再做处理吗?
Linux吃掉了我的内存
在Windows下资源管理器查看内存使用的情况,如果使用率达到80%以上,再运行大程序就能感觉到系统不流畅了,因为在内存紧缺的情况下使用交换分区,频繁地从磁盘上换入换出页会极大地影响系统的性能。而当我们使用free命令查看Linux系统内存使用情况时,会发现内存使用一直处于较高的水平,即使此时系统并没有运行多少软件。这正是Windows和Linux在内存管理上的区别,乍一看,Linux系统吃掉我们的内存(Linux ate my ram),但其实这也正是其内存管理的特点。
马哥linux运维
2018/11/28
7300
Postgresql concurrently index 为什么可以在线加索引
提到在线加索引都是商业数据库的功能,例如SQL SERVER 在线加索引就是你花钱买的版本也必须是企业版, 标准版都不能在线加索引。POSTGRESQL 支持在线加索引的功能,在本文撰写期间MYSQL 是不支持 online add index 对于几千万的大表建立索引还是要使用工具,并且8.0 使用gh ost 是有我问题,所以对于大表加索引并且是8.0的情况还得是 pt-osc.
AustinDatabases
2021/08/06
8780
Postgresql  concurrently index  为什么可以在线加索引
建议收藏chatGPT说的加Ubuntu虚拟内存的教程
这个是当下最流行最时髦的AI神器chatGPT和我一起合作写的一篇通用技术文章,请读者笑纳!
江涛学编程
2023/05/27
1.3K0
建议收藏chatGPT说的加Ubuntu虚拟内存的教程
建议收藏chatGPT说的加Ubuntu虚拟内存的教程
这个是当下最流行最时髦的AI神器chatGPT和我一起合作写的一篇通用技术文章,请读者笑纳!
江涛学编程
2023/03/17
1.6K0
Springboot中maven需要加的配置
给maven 的settings.xml配置文件的profiles标签添加 <profiles> <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler
用户5927264
2019/08/01
1.3K0
GDS中如何加logo
好,言归正传,在GDS中打上自己的logo是一件很cool的事,而且有时候也是很必要的。
白山头
2020/06/29
1.1K0
为什么abstract @service注解的类不被加载到beanfactory中
使用过spring开发的开发者对@Service注解以及@Autowired注解不会陌生,系统在启动时会把@Service注解的类加载到BeanFactory中,然后就可以通过@Autowired注解的方式注入Service类实例,但并不是所以被@Service注解的类都会被加载到系统中,那么到底哪些类会被加载到系统中(也就是满足什么条件才会被加载呢),这个看下ClassPathScanningCandidateComponentProvider类的findCandidateComponents方法:
johnhuster的分享
2022/03/29
4690
Taro中如何将store加载到项目中
上面文章我们了解了如何创建store,最后导出时,在函数内部创建了store,所以导出时,函数需要调用,然后通过provicer组件将其注入到项目中。
挥刀北上
2022/05/11
7780
Taro中如何将store加载到项目中
利用Numpy中的ascontiguousarray可以是数组在内存上连续,加速计算
AttributeError: incompatible shape for a non-contiguous array
用户7886150
2021/01/02
2K0
将WordPress文章中的外链图片自动下载到本地
WordPress很多插件或者代码都可以实现在编辑文章中自动将外链图片下载到本地,最终我选择了一个叫:Easy Copy Paste的插件。
小狐狸说事
2023/11/17
5880
将WordPress文章中的外链图片自动下载到本地
React Hooks中这样写HTTP请求可以避免内存泄漏
译文来自 https://dev.to/somedood/best-practices-for-es2017-asynchronous-functions-async-await-39ji 原作者 Victor de la Fouchardière 译者: 蓝色的秋风(github/hua1995116) 大家好 !今天,让我们看一下在 React Hooks 中使用 fetch 和Abort Controller取消Web请求从而来避免内存泄露!当我们用 Fetch 来管理数据时,有时我们想取消请求(例如
秋风的笔记
2020/10/27
1.6K0
React Hooks中这样写HTTP请求可以避免内存泄漏
微信昵称可以加雪花了,个性又好看
这里先来看一下效果,我们可以看到昵称文字的上面有一个雪花的样式,感觉还是非常不错的!
@超人
2021/02/26
1.1K0
微信昵称可以加雪花了,个性又好看

相似问题

缓存页的最小缓存生存期与终止时间的差异

20

内部页缓存和动态页缓存之间的关系是什么?

10

禁用内部页缓存并启用动态页缓存

10

缓存页的过期时间为6小时

10

如何防止页的缓存?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文