学习 ui-router (三):多个命名的视图
转自:http://bubkoo.com/2014/01/01/angular/ui-router/guide/multiple-named-views/
参考原文:https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views 可以给
当您需要使用多视图时,需要用到状态的 设置
|
|
|
|
|
然后views
中的每一个 view 都可以设置自身的模板属性(template
,templateUrl
,templateProvider
) 和控制器属性(controller
,controllerProvider
)。
|
'filters': { |
视图名称 - 相对命名与绝对命名
在定义views
属性时,如果视图名称中包含@
,那么视图名称就是绝对命名的方式,否则就是相对命名的方式。相对命名的意思是相对于父模板中的ui-view
,而绝对命名则指定了相对于哪个状态的模板。
在 ui-router 内部,views
属性中的每个视图都被按照viewname@statename
的方式分配为绝对名称,viewname
是目标模板中的ui-view
对应的名称,statename
是状态的名称,状态名称对应于一个目标模板。@
前面部分为空表示未命名的ui-view
,@
后面为空则表示相对于根模板,通常是 index.html。
例如,上面的例子可以写成如下方式:
|
|
注意,这样的写法,视图的名称指定为绝对的名字,而不是相对的名字。这样 ‘filters’,’tabledata’和’graph’三个视图将加载到根视图的模板中(由于没有父状态,则根模板就是index.html)。
绝对命名的方式可以让我们完成一些强大的功能,让我们假设我们有几个模板设置(这里仅仅作为实例演示,有些不现实的地方),像下面这样:
|
<!-- index.html (root unnamed template) --> |
<!-- contacts.html --> |
|
<!-- contacts.detail.html --> |
让我们来看看在contacts.detail
状态中,相对命名和绝对命名的各种使用方式,请注意,一旦使用了@
则表示绝对命名的方式。
|
'contacts',{ |
你将发现,不仅仅可以在同一状态设置多个视图,而且祖先状态可以由开发者自由控制:)。
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
- angularjs – 使用ng-options添加空格
- scala:覆盖按名称调用代码块的隐式参数
- myexclipse 创建并调用 webservice
- 使用Scalaz在Scala中使用Validation进行异步计算
- 京东评价系统海量数据存储设计
- java-从Maven Sonatype Nexus存储库下载私有jar的Docker自动
- 【数据结构】图的构建(邻接表法)
- ngx-workspace Angular自定义可拖动模块/组件大小和位置
- [Angular] Improve Server Communication in Ngrx Effects
- Jasmine测试没有看到AngularJS模块