获取当前的浏览状态。
1.6.2+
公用数据存取上下文,用于跨视图存取数据。 当需要抽取变量,使得可以跨视图访问时,开发者应当尽可能地使用公用上下文,而非window
,以降低变量污染的可能。
1.6.2+
判断浏览器的history
对象是否支持pushState
API。
View.checkIfBrowserHistorySupportsPushPopAction(): boolean
1.6.2+
true
- 浏览器的 history
对象支持 pushState
API。否则返回 false
。获取视图容器对应的 DOM 元素。
View.getViewContainerDomElement(): HTMLElement
1.6.2+
document.body
。从 DOM 树中获取匹配给定选择器的 DOM 元素。
View.find(rootObj?: HTMLElement, selector: string): HTMLElement
1.6.2+
rootObj?: HTMLElement
- 检索 DOM 元素的根元素,可选。默认为视图容器。selector: string
- 选择器。null
。从 DOM 树中获取匹配给定选择器的多个 DOM 元素。
View.findAll(rootObj?: HTMLElement, selector: string): NodeList | null
1.6.2+
rootObj?: HTMLElement
- 检索 DOM 元素的根元素,可选。默认为视图容器。selector: string
- 选择器。rootObj
为 null
,则返回 null
。获取视图实例。
View.ofId(viewId: string, viewNamespace?: string): View
1.6.2+
viewId: string
- 视图ID。viewNamespace?: string
- 视图隶属的命名空间。可选,默认为:default
。判断视图是否存在。
View.ifExists(viewId: string, viewNamespace?: string): boolean
1.6.2+
viewId: string
- 视图ID。viewNamespace?: string
- 视图隶属的命名空间。可选,默认为:default
。true
- 视图存在,false
- 视图不存在。false
。列举所有视图。
View.listAll(viewName?: string): View[]
1.6.2+
viewName?: string
- 视图名称,可选。如果为空,则返回所有视图实例。否则返回声明为该名称的视图实例。不区分大小写。列举被视图声明了的所有视图名称。
View.listAllViewNames(): string[]
1.6.2+
data-view-name
属性声明。设置给定的视图为默认视图。
View.setAsDefault(viewId: string, viewNamespace?: string): View
1.6.2+
viewId: string
- 视图ID。viewNamespace?: string
- 视图隶属的命名空间。可选,默认为:default
。window.View
以供开发者链式调用。判断所有视图默认是否可以直接访问。
View.isDirectlyAccessible(): boolean
1.6.2+
true
- 视图默认可以直接访问,false
- 视图默认不可以直接访问。设置所有视图默认是否可以直接访问。
View.setIsDirectlyAccessible(isDirectlyAccessible: boolean): View
1.6.2+
isDirectlyAccessible: boolean
- 是否可以直接访问。window.View
以供开发者链式调用。设置特定视图是否可以直接访问。
View.setIsDirectlyAccessible(viewId: string, viewNamespace?: string, isDirectlyAccessible: boolean): View
1.6.2+
viewId: string
- 视图ID。viewNamespace?: string
- 视图隶属的命名空间。可选,默认为:default
。isDirectlyAccessible: boolean
- 是否可以直接访问。window.View
以供开发者链式调用。viewInstance.setIsDirectlyAccessible()
,该方法可以在 View.js 完成初始化之前调用。获取当前的活动视图。
View.getActiveView(): View | null
1.6.2+
null
。获取默认视图。
View.getDefaultView(): View | null
1.6.2+
null
。获取设置的视图跳转动画执行器。
1.6.2+
null
。设置视图跳转动画执行器。
1.6.2+
window.View
以供开发者链式调用。获取体现在地址栏中的,当前活动视图的视图选项集合。
View.getActiveViewOptions(): Object | null
1.6.2+
null
。判断当前活动视图的视图选项集合中,是否含有给定键名的参数。
View.hasActiveViewOptions(name: string): boolean
1.6.2+
name: string
- 参数的键名。true
- 视图选项集合不为 null
,且集合中含有 key 为给定键名的数据。否则,返回 false
。从当前活动视图的视图选项集合中,获取给定键名的参数取值。
View.getActiveViewOptions(name: string): string | null
1.6.2+
name: string
- 参数的键名。null
,或参数不存在,则返回 null
。为当前活动视图设置视图选项。
View.setActiveViewOptions(name: string, value: string): View
1.6.2+
name: string
- 参数的键名。value: string
- 参数的取值。window.View
以供开发者链式调用。“穿过”视图,用于在不渲染界面、不触发关联事件的情况下 “伪造” 视图的访问记录。该方法自1.7.0
开始被废弃(仍然可用),开发者可使用等价的View.navBy()
替代。
View.passBy(viewId: string, viewNamespace?: string): View
1.6.2+
viewId: string
- 视图ID。viewNamespace?: string
- 视图隶属的命名空间。可选,默认为:default
。window.View
以供开发者链式调用。以 压入堆栈 的方式 “略过” 视图,用于在不渲染界面、不触发关联事件的情况下 “伪造” 视图的访问记录。
View.navBy(viewId: string, viewNamespace?: string): View
1.7.0+
viewId: string
- 视图ID。viewNamespace?: string
- 视图隶属的命名空间。可选,默认为:default
。window.View
以供开发者链式调用。以 替换栈顶 的方式 “略过” 视图,用于在不渲染界面、不触发关联事件的情况下 “伪造” 视图的访问记录。
View.changeBy(viewId: string, viewNamespace?: string): View
1.7.0+
viewId: string
- 视图ID。viewNamespace?: string
- 视图隶属的命名空间。可选,默认为:default
。window.View
以供开发者链式调用。以 压入堆栈 的方式跳转至目标视图。
1.6.2+
View.navTo(viewInstance: View): View
1.7.0+
viewId: string
- 视图ID,或视图名称,或伪视图,或外部链接。支持的伪视图包括:
:back
- 前进,等同于View.back()
;:forward
- 后退,等同于View.forward()
;:default-view
- 默认视图;例如:1/**2* 后退,等同于 View.back()3*4* 第一个参数指定了跳转目标;5* 第二个参数指定了跳转控制选项,其中,关键字:'params' 用于指定视图参数集合。6*/7View.navTo(":back", {8params: {9paramName1: "boo"10}11});1213/**14* 后退,等同于 View.forward()15*/16View.navTo(":forward", {17params: {18paramName1: "boo"19}20});2122/**23* 跳转至默认视图24* 第二个参数指定了跳转控制选项,其中,关键字:'options' 用于指定视图选项集合。25*/26View.navTo(":default-view", {27params: {28paramName1: "boo"29},30options: {31paramName2: "foo"32}33});Copied!
当为视图名称时,需要使用~
符号前缀,例如:1/**2* 跳转至视图名称为 profile 的第一个视图上去3*/4View.navTo("~profile",{5params: {6param1: "value1"7},8options: {9param2: "value2"10}11});Copied!
当为外部链接,且链接地址为完整路径时,可以直接赋值为链接地址,例如:1/**2* 跳转至完整的外部链接3*/4View.navTo("http://view-js.com");Copied!如果外部链接地址不完整,则需要使用@
符号前缀,例如:1/**2* 跳转至当前目录下的 index.html 页面3*/4View.navTo("@index.html");Copied!
viewNamespace?: string
- 视图隶属的命名空间。可选,默认为:default
。viewInstance: View
- 视图实例。window.View
以供开发者链式调用。1.7.0
开始,开发者可以通过 View.addSwitchInterceptor()
方法添加拦截器,阻止视图跳转动作的执行。以 替换栈顶 的方式跳转至目标视图。
1.6.2+
View.changeTo(viewInstance: View): View
1.7.0+
viewId: string
- 视图ID,或视图名称,或伪视图,或外部链接。支持的伪视图包括:
:default-view
- 默认视图;
例如:1/**2* 跳转至默认视图3* 第二个参数指定了跳转控制选项,其中,关键字:'options' 用于指定视图选项集合。4*/5View.changeTo(":default-view", {6params: {7paramName1: "boo"8},9options: {10paramName2: "foo"11}12});Copied!
当为视图名称时,需要使用~
符号前缀,例如:1/**2* 跳转至视图名称为 profile 的第一个视图上去3*/4View.changeTo("~profile",{5params: {6param1: "value1"7},8options: {9param2: "value2"10}11});Copied!
当为外部链接,且链接地址为完整路径时,可以直接赋值为链接地址,例如:1/**2* 跳转至完整的外部链接3*/4View.changeTo("http://view-js.com");Copied!如果外部链接地址不完整,则需要使用@
符号前缀,例如:1/**2* 跳转至当前目录下的 index.html 页面3*/4View.changeTo("@index.html");Copied!
viewNamespace?: string
- 视图隶属的命名空间。可选,默认为:default
。viewInstance: View
- 视图实例。window.View
以供开发者链式调用。1.7.0
开始,开发者可以通过 View.addSwitchInterceptor()
方法添加拦截器,阻止视图跳转动作的执行。添加视图跳转拦截器。
1.7.0+
interceptor: ViewSwitchInterceptor
- 拦截器。window.View
以供开发者链式调用。获取添加的视图跳转拦截器列表。顺序与添加顺序保持一致。
1.7.0+
设置在“没有视图可以继续向前返回”的情况下,尝试返回时要执行的动作。 开发者可以借助该特性,实现 “没有页面可以继续向前返回时,跳转至首页” 的效果。
View.setNoViewToNavBackAction(action: Function): View
1.6.2+
action: Function
- 要执行的动作。window.View
以供开发者链式调用。返回至上一个视图。
1.6.2+
window.View
以供开发者链式调用。前进至下一个视图。
1.6.2+
window.View
以供开发者链式调用。设置文档标题。 在视图之间发生跳转时,View.js 会自动使用目标视图定义的标题更新文档标题。如果目标视图没有定义标题,则会使用初始化阶段捕获的浏览器标题呈现。如果初始化阶段的文档不是文档的最终标题,开发者需要在适当时机执行该方法。 View.js 默认在DOMContentloaded
事件触发后进行初始化。
View.setDocumentTitle(title: string): View
1.6.2+
title: string
- 文档标题。window.View
以供开发者链式调用。执行所有视图的布局动作。 每个视图实例都可以通过setLayoutAction()
方法设置自己的布局动作。布局动作默认在视图进入时由 View.js 自动执行。必要时,开发者可以通过调用本方法强制所有视图重新布局。
View.reDoLayout(): View
1.6.2+
window.View
以供开发者链式调用。判断是否可以继续向前返回。亦即,历史堆栈中,是否还有更早的视图浏览记录。
View.ifCanGoBack(): boolean
1.6.2+
true
- 可以继续向前返回;false
- 已经返回到底了。添加 View.js 初始化前要执行的处理器。
View.beforeInit(action: Function): View
1.6.2+
action: Function
- 处理器。window.View
以供开发者链式调用。添加 View.js 就绪后要执行的处理器。
View.ready(action: Function): View
1.6.2+
action: Function
- 处理器。window.View
以供开发者链式调用。设置 View.js 的初始化触发器。
1.6.2+
window.View
以供开发者链式调用。1.7.0
开始,本方法被标记为 “已废弃” (仍然可用),建议开发者使用新增的 View.init()
方法实现手动初始化 。初始化 View.js 。
View.init(): View
1.7.0+
window.View
以供开发者链式调用。添加宏观事件监听器。预置的宏观事件包括: 1.beforechange
- 活动视图即将切换(同步触发) 2.change
- 活动视图正在切换(同步触发) 3.afterchange
- 活动视图切换完成(异步触发)开发者也可以使用该方法监听自定义事件。
1.6.2+
eventName: string
- 事件名称。window.View
以供开发者链式调用。移除宏观事件监听器。预置的宏观事件包括: 1.beforechange
- 活动视图即将切换(同步触发) 2.change
- 活动视图正在切换(同步触发) 3.afterchange
- 活动视图切换完成(异步触发)
1.6.2+
eventName: string
- 事件名称。window.View
以供开发者链式调用。发起宏观事件。
View.fire(eventName: string, data?: any): View
1.6.2+
eventName: string
- 事件名称。data?: any
- 事件关联数据 。window.View
以供开发者链式调用。视图切换方式:浏览器前进。只读。
View.SWITCHTYPE_HISTORYFORWARD: string
1.6.2+
视图切换方式:浏览器后退。只读。
View.SWITCHTYPE_HISTORYBACK: string
1.6.2+
视图切换方式:“压入堆栈” 式前进。只读。
View.SWITCHTYPE_VIEWNAV: string
1.6.2+
视图切换方式:“替换栈顶” 式前进。只读。
View.SWITCHTYPE_VIEWCHANGE: string
1.6.2+
视图跳转动作触发来源:应用程序。只读。
View.SWITCHTRIGGER_APP: string
1.6.2+
视图跳转动作触发来源:浏览器。只读。
View.SWITCHTRIGGER_NAVIGATOR: string
1.6.2+
获取视图的ID。只读。
viewInstance.id: string
1.6.2+
获取视图隶属的命名空间。只读。
viewInstance.namespace: string
1.6.2+
default
。获取视图内置的日志句柄。只读。
1.6.2+
获取视图内置的配置集合。只读。
1.6.2+
获取视图内置的数据存取上下文。只读。
1.6.2+