ContextHub Javascript API参考 contexthub-javascript-api-reference
ContextHub常量 contexthub-constants
ContextHub Javascript API定义的常量值。
事件常量 event-constants
下表列出了ContextHub存储发生的名称事件。 另请参阅 ContextHub.Utils.Eventing.
UI事件常量 ui-event-constants
下表列出了ContextHub UI中发生的事件的名称。
ContextHub Javascript API参考 contexthub-javascript-api-reference-2
ContextHub对象提供对所有存储的访问。
函数(ContextHub) functions-contexthub
getAllStores() getallstores
返回所有注册的ContextHub存储。
此函数没有参数。
返回结果
包含所有ContextHub存储的对象。 每个存储都是一个使用与存储相同名称的对象。
示例
以下示例检索所有存储区,然后检索地理位置存储区:
var allStores = ContextHub.getAllStores();
var geoloc = allStores.geolocation;
getStore(name) getstore-name
检索存储作为Javascript对象。
参数
- 名称: 用于注册商店的名称。
返回结果
表示存储的对象。
示例
以下示例检索地理位置存储:
var geoloc = ContextHub.getStore("geolocation");
ContextHub.SegmentEngine.Segment contexthub-segmentengine-segment
表示ContextHub区段。 使用ContextHub.SegmentEngine.SegmentManager获取区段。
函数(ContextHub.ContextEngine.Segment) functions-contexthub-contextengine-segment
getName() getname
将区段的名称作为字符串值返回。
getPath() getpath
将区段定义的存储库路径作为字符串值返回。
ContextHub.SegmentEngine.SegmentManager contexthub-segmentengine-segmentmanager
提供对ContextHub区段的访问。
函数(ContextHub.SegmentEngine.SegmentManager) functions-contexthub-segmentengine-segmentmanager
getResolvedSegments() getresolvedsegments
返回在当前上下文中解析的区段。 此函数没有参数。
返回结果
ContextHub.SegmentEngine.Segment对象的数组。
ContextHub.Store.Core contexthub-store-core
ContextHub存储的基类。
属性(ContextHub.Store.Core) properties-contexthub-store-core
事件 eventing
A ContextHub.Utils.Eventing 对象。 使用此对象绑定函数以存储事件。 有关默认值和初始化的信息,请参阅 init(name,config).
name name
商店的名称。
持久性 persistence
ContextHub.Utils.Persistence对象。 有关默认值和初始化的信息,请参阅 init(name,config)
.
函数(ContextHub.Store.Core) functions-contexthub-store-core
addAllItems(tree, options) addallitems-tree-options
将数据对象或数组与存储数据合并。 对象或数组中的每个键/值对都会添加到存储中(通过 setItem
函数):
- 对象: 键是属性名称。
- 阵列: 键是数组索引。
请注意,值可以是对象。
参数
- 树: (对象或数组)要添加到存储中的数据。
- 选项: (对象)传递到setItem函数的选项的可选对象。 有关信息,请参阅
options
参数 setItem(key,value,options).
返回结果
A boolean
值:
- 值
true
指示存储了数据对象。 - 值
false
表示数据存储未更改。
addReference(key, anotherKey) addreference-key-anotherkey
创建从一个键到另一个键的引用。 键不能引用自身。
参数
-
键: 引用的键
anotherKey
. -
其他键: 引用的键
key
.
返回结果
A boolean
值:
- 值
true
表示已添加引用。 - 值
false
表示未添加引用。
announceReadiness() announcereadiness
触发 ready
事件。 此函数没有参数,且不返回任何值。
clean() clean
从存储中删除所有数据。 函数没有参数,也没有返回值。
getItem(key) getitem-key
返回与键值关联的值。
参数
- 键: (字符串)要返回值的键。
返回结果
表示键值的对象。
getKeys(includeInternals) getkeys-includeinternals
从存储中检索键。 或者,您也可以检索ContextHub框架内部使用的键。
参数
- includeInternals: 值
true
结果中包含内部使用的键。 这些键以下划线("_")字符开头。 默认值为false
。
返回结果
键名称数组( string
值)。
getReferences() getreferences
从存储中检索引用。
返回结果
使用引用键作为引用键的索引的数组:
-
引用键值与
key
参数addReference
函数。 -
引用的键与
anotherKey
参数addReference
函数。
getTree(includeInternals) gettree-includeinternals
从存储中检索数据树。 或者,您也可以包含ContextHub框架在内部使用的键/值对。
参数
includeInternals:
值true
结果中包含内部使用的键/值对。 此数据的键以下划线("_")字符开头。 默认值为false
。
返回结果
表示数据树的对象。 键是对象的属性名称。
init(name, config) init-name-config
初始化存储。
-
将存储数据设置为空对象。
-
设置对空对象的存储引用。
-
eventChannel是数据:name,其中 name 是商店名称。
-
storeDataKey是/store/name,其中 name 是商店名称。
参数
-
名称: 商店的名称。
-
配置: 包含配置属性的对象:
- eventDeferring:默认值为32。
- 事件:的 ContextHub.Utils.Eventing 对象。 默认值为ContextHub.eventing对象使用的。
- 持久性:此存储的ContextHub.Utils.Persistence对象。 默认值为ContextHub.persistence对象。
isEventingPaused() iseventingpaused
确定是否暂停此存储的事件。
返回结果
布尔值:
true
:事件暂停,因此不会为此存储触发任何事件。false
:事件不会暂停,因此会为此存储触发事件。
pauseEventing() pauseeventing
会暂停存储的事件,以便不触发任何事件。 此函数不需要任何参数,也不返回任何值。
removeItem(key, options) removeitem-key-options
从存储中删除键/值对。
删除键后,函数将触发 data
事件。 事件数据包括存储名称、已删除键的名称、已删除的值、键的新值(null)以及“remove”操作类型。
或者,您也可以选择阻止触发 data
事件。
参数
-
键: (字符串)要删除的键的名称。
-
选项: (对象)选项的对象。 以下对象属性有效:
- 沉默:值
true
阻止触发data
事件。 默认值为false
。
- 沉默:值
返回结果
A boolean
值:
- 值
true
表示已删除键/值对。 - 值
false
表示数据存储未更改,因为在存储中未找到密钥。
removeReference(key) removereference-key
从存储中删除引用。
参数
- 键: 要删除的键引用。 此参数与
key
参数addReference
函数。
返回结果
A boolean
值:
- 值
true
表示已删除引用。 - 值
false
表示键无效,且存储未更改。
reset(keepRemainingData) reset-keepremainingdata
重置存储保留数据的初始值。 或者,您也可以从存储中删除所有其他数据。 重置存储时,会暂停此存储的事件。 此函数不返回任何值。
初始值在用于实例化存储对象的配置对象的initialValues属性中提供。
参数
- keepRemainingData: (布尔值)如果值为true,则会保留非初始数据。 如果值为false,则会删除除初始值之外的所有数据。
重置存储保留数据的初始值。 或者,您也可以从存储中删除所有其他数据。 重置存储时,会暂停此存储的事件。 此函数不返回任何值。
初始值在用于实例化存储对象的配置对象的initialValues属性中提供。
参数
- keepRemainingData:(布尔值)如果值为true,则会保留非初始数据。 如果值为false,则会删除除初始值之外的所有数据。
resolveReference(key, retry) resolvereference-key-retry
检索引用的键值。 或者,您可以指定用于解析最佳匹配的迭代次数。
参数
-
键: (字符串)要解析引用的键。 此
key
参数与key
参数addReference
函数。 -
重试: (数字)要使用的小版本数。
返回结果
A string
表示引用键值的值。 如果未解析引用,则 key
参数。
resumeEventing() resumeeventing
恢复此存储的事件,以便触发事件。 此函数未定义任何参数,且不返回任何值。
setItem(key, value, options) setitem-key-value-options
向存储添加键/值对。
触发 data
事件。 您可以选择阻止触发 data
事件。
事件数据包括存储名称、键、上一个值、新值和操作类型 set
.
参数
-
键: (字符串)键的名称。
-
选项: (对象)选项的对象。 以下对象属性有效:
- 沉默:值
true
阻止触发data
事件。 默认值为false
。
- 沉默:值
-
值: (对象)要与键关联的值。
返回结果
A boolean
值:
- 值
true
指示存储了数据对象。 - 值
false
表示数据存储未更改。
ContextHub.Store.JSONPStore contexthub-store-jsonpstore
包含JSON数据的商店。 数据是从外部JSONP服务中检索,或者(可选)从返回JSON数据的服务中检索。 使用指定服务详细信息 init
函数。
存储使用内存中的永久性(Javascript变量)。 存储数据仅在页面的生命周期内可用。
ContextHub.Store.JSONPStore扩展 ContextHub.Store.Core 并继承该类的函数。
函数(ContextHub.Store.JSONPStore) functions-contexthub-store-jsonpstore
configureService(serviceConfig, override) configureservice-serviceconfig-override
配置用于连接到此对象所使用的JSONP服务的详细信息。 您可以更新或替换现有配置。 该函数不返回任何值。
参数
-
serviceConfig: 包含以下属性的对象:
-
主机:(字符串)服务器名称或IP地址。
-
jsonp:(布尔值)值为true表示该服务是JSONP服务,否则为false。 如果为true,则为{callback:"ContextHub.回调。Object.name}对象已添加到service.params对象。
-
参数:(对象)表示为对象属性的URL参数。 参数名称是属性名称,参数值是属性值。
-
路径:(字符串)服务的路径。
-
端口:(数字)服务的端口号。
-
安全:(字符串或布尔值)确定用于服务URL的协议:
- auto: //
- true//
- false//
-
-
覆盖: (布尔值)。 值
true
导致现有服务配置被serviceConfig
. 值false
导致现有服务配置属性与serviceConfig
.
getRawResponse() getrawresponse
返回自上次调用JSONP服务后缓存的原始响应。 函数不需要任何参数。
返回结果
表示原始响应的对象。
getServiceDetails() getservicedetails
检索此ContextHub.Store.JSONPStore对象的服务对象。 服务对象包含创建服务URL所需的所有信息。
返回结果
具有以下属性的对象:
-
主机: (字符串)服务器名称或IP地址。
-
jsonp: (布尔值)值为true表示该服务是JSONP服务,否则为false。 如果为true,则为{callback:"ContextHub.回调。Object.name}对象已添加到service.params对象。
-
参数: (对象)表示为对象属性的URL参数。 参数名称是属性名称,参数值是属性值。
-
路径: (字符串)服务的路径。
-
端口: (数字)服务的端口号。
-
安全: (字符串或布尔值)确定用于服务URL的协议:
- auto: //
- true//
- false//
getServiceURL(resolve) getserviceurl-resolve
检索JSONP服务的URL。
参数
- 解决: (布尔)确定是否在URL中包含已解析的参数。 值
true
解析参数和false
不会。
返回结果
A string
表示服务URL的值。
init(name, config) init-name-config-1
初始化ContextHub.Store.JSONPStore对象。
参数
-
名称: (字符串)存储的名称。
-
配置: (对象)包含服务属性的对象。 JSONPStore对象使用
service
用于构建JSONP服务URL的对象:-
eventDeferring:32.
-
事件:此存储的ContextHub.Utils.Eventing对象。 默认值为
ContextHub.eventing
对象。 -
持久性:此存储的ContextHub.Utils.Persistence对象。 默认情况下,会使用内存持久性(Javascript对象)。
-
服务:(对象)
-
主机:(字符串)服务器名称或IP地址。
-
jsonp:(布尔值)值为true表示该服务是JSONP服务,否则为false。 如果为true,则
{callback: "ContextHub.Callbacks.*Object.name*}
对象添加到service.params
. -
参数:(对象)表示为对象属性的URL参数。 参数名称和值分别是对象属性名称和值。
-
路径:(字符串)服务的路径。
-
端口:(数字)服务的端口号。
-
安全:(字符串或布尔值)确定用于服务URL的协议:
- auto: //
- true//
- false//
-
超时:(数字)等待JSONP服务在超时前做出响应的时间(以毫秒为单位)。
-
ttl:在对JSONP服务的调用之间传递的最小时间(以毫秒为单位)。 (请参阅 queryService 函数)。
-
-
queryService(reload) queryservice-reload
查询远程JSONP服务并缓存响应。 如果自上次调用此函数以来经过的时间小于的值 config.service.ttl
,则不会调用服务并且不会更改缓存的响应。 或者,您也可以强制调用服务。 的 config.service.ttl
属性 init 函数来初始化存储。
查询完成后会触发就绪事件。 如果未设置JSONP服务URL,则函数不执行任何操作。
参数
- 重新加载: (布尔值)值为true将删除缓存响应并强制调用JSONP服务。
重置 reset
重置存储保留数据的初始值,然后调用JSONP服务。 或者,您也可以从存储中删除所有其他数据。 重置初始值时,会暂停此存储的事件。 此函数不返回任何值。
初始值在用于实例化存储对象的配置对象的initialValues属性中提供。
参数
- keepRemainingData: (布尔值)如果值为true,则会保留非初始数据。 如果值为false,则会删除除初始值之外的所有数据。
resolveParameter(f) resolveparameter-f
解析给定参数。
ContextHub.Store.PersistedJSONPStore contexthub-store-persistedjsonpstore
ContextHub.Store.PersiredJSONPStore扩展 ContextHub.Store.JSONPStore 所以它继承了该类的所有功能。 但是,从JSONP服务检索的数据将根据ContextHub持久性的配置进行保留。 (请参阅 持久性模式.)
ContextHub.Store.PersistedStore contexthub-store-persistedstore
ContextHub.Store.PersiredStore扩展 ContextHub.Store.Core 所以它继承了该类的所有功能。 此存储中的数据将根据ContextHub持久性的配置进行保留。
ContextHub.Store.SessionStore contexthub-store-sessionstore
ContextHub.Store.SessionStore扩展 ContextHub.Store.Core 所以它继承了该类的所有功能。 此存储中的数据将使用内存中持久性(Javascript对象)进行保留。
ContextHub.UI contexthub-ui
管理UI模块和UI模块渲染器。
函数(ContextHub.UI) functions-contexthub-ui
registerRenderer(moduleType, renderer, dontRender) registerrenderer-moduletype-renderer-dontrender
使用ContextHub注册UI模块渲染器。 注册渲染器后,可以使用 创建UI模块. 当您 扩展ContextHub.UI.BaseModuleRenderer 创建自定义UI模块渲染器。
参数
- moduleType: (字符串)UI模块渲染器的标识符。 如果已使用指定的值注册了渲染器,则在注册此渲染器之前会取消注册现有渲染器。
- 呈现器: (字符串)呈现UI模块的类的名称。
- dontRender: (布尔值)设置为
true
,以防止在注册渲染器后渲染ContextHub UI。 默认值为false
。
示例
以下示例将呈现器注册为contexthub.browserinfo模块类型。
ContextHub.UI.registerRenderer('contexthub.browserinfo', new SurferinfoRenderer());
ContextHub.Utils.Cookie contexthub-utils-cookie
用于与Cookie交互的实用程序类。
函数(ContextHub.Utils.Cookie) functions-contexthub-utils-cookie
exists(key) exists-key
确定是否存在Cookie。
参数
- 键: A
String
,其中包含要测试的Cookie的键。
返回结果
A boolean
值为true表示Cookie存在。
示例
if (ContextHub.Utils.Cookie.exists("name")) {
// conditionally-executed code
}
getAllItems(filter) getallitems-filter
返回具有与过滤器匹配的键的所有Cookie。
参数
-
(可选) 过滤器: 匹配Cookie键的条件。 要返回所有Cookie,请指定无值。 支持以下类型:
- 字符串:字符串会与Cookie键值进行比较。
- 阵列:数组中的每个项目都是一个过滤器。
- 正则表达式对象:对象的测试函数用于匹配Cookie键。
- 函数:用于测试Cookie键是否匹配的函数。 如果测试确认匹配,则函数必须将Cookie键作为参数并返回true。
返回结果
Cookie的对象。 对象属性是Cookie键,键值是Cookie值。
示例
ContextHub.Utils.Cookie.getAllItems([/^cq-authoring/, /^cq-editor/])
getItem(key) getitem-key-1
返回Cookie值。
参数
- 键: 您想要其值的Cookie的键。
返回结果
Cookie值,或 null
如果找不到密钥的cookie。
示例
ContextHub.Utils.Cookie.getItem("name");
getKeys(filter) getkeys-filter
返回与过滤器匹配的现有Cookie的键数组。
参数
-
过滤器: 匹配Cookie键的条件。 支持以下类型:
- 字符串:字符串会与Cookie键值进行比较。
- 阵列:数组中的每个项目都是一个过滤器。
- 正则表达式对象:对象的测试函数用于匹配Cookie键。
- 函数:用于测试Cookie键是否匹配的函数。 函数必须将Cookie键作为参数并返回
true
测试是否确认匹配。
返回结果
一个字符串数组,其中每个字符串是与过滤器匹配的Cookie的键。
示例
ContextHub.Utils.Cookie.getKeys([/^cq-authoring/, /^cq-editor/])
removeItem(key, options) removeitem-key-options-1
删除Cookie。 要删除Cookie,该值将设置为空字符串,到期日期将设置为当前日期前一天。
参数
-
键: A
String
表示要删除的Cookie键的值。 -
选项: 一个对象,其中包含用于配置Cookie属性的属性值。 请参阅
[setItem](https://experienceleague.adobe.com/docs/experience-manager-64/developing/personlization/contexthub-api.html?lang=zh-Hans#setitem-key-value-options)
函数。 的expires
属性不起作用。
返回结果
此函数不返回值。
示例
ContextHub.Utils.Cookie.vanish([/^cq-authoring/, 'cq-scrollpos']);
setItem(key, value, options) setitem-key-value-options-1
创建给定键值的Cookie,并将该Cookie添加到当前文档。 或者,您也可以指定用于配置Cookie属性的选项。
参数
-
键: 包含Cookie键的字符串。
-
值: 包含Cookie值的字符串。
-
选项: (可选)一个对象,其中包含配置Cookie属性的以下任意属性:
- 过期:A
date
或number
指定Cookie何时过期的值。 日期值指定到期的绝对时间。 数字(以天为单位)会将到期时间设置为当前时间加上数字。 默认值为undefined
。 - 安全:A
boolean
指定Secure
属性。 默认值为false
。 - 路径:A
String
值Path
属性。 默认值为undefined
。
- 过期:A
返回结果
具有设置值的Cookie。
示例
ContextHub.Utils.Cookie.setItem("name", "mycookie", {
expires: 3,
domain: 'localhost',
path: '/some/directory',
secure: true
});
消失(过滤器,选项) vanish-filter-options
删除与给定过滤器匹配的所有Cookie。 Cookie使用getKeys函数进行匹配,并使用removeItem函数删除。
参数
-
过滤器: 的
filter
要在对的调用中使用的参数[getKeys](/docs/experience-manager-64/developing/personlization/contexthub-api.md#getkeys-filter)
函数。 -
选项: 的
options
要在对的调用中使用的参数[removeItem](/docs/experience-manager-64/developing/personlization/contexthub-api.md#removeitem-key-options)
函数。
返回结果
此函数不返回值。
ContextHub.Utils.Eventing contexthub-utils-eventing
允许您将函数绑定和取消绑定到ContextHub存储事件。 使用访问存储的ContextHub.Utils.Eventing对象 事件 存储的属性。
函数(ContextHub.Utils.Eventing) functions-contexthub-utils-eventing
off(name, selector) off-name-selector
从事件中取消绑定函数。
参数
返回结果
此函数不返回任何值。
on(name, handler, selector, triggerForPastEvents) on-name-handler-selector-triggerforpastevents
将函数绑定到事件。 每次发生事件时都会调用函数。 或者,也可以在建立绑定之前,为过去发生的事件调用函数。
参数
-
名称: (字符串) 事件的名称 将函数绑定到的。
-
处理程序: (函数)要绑定到事件的函数。
-
选择器: (字符串)绑定的唯一标识符。 如果要使用
off
函数来删除绑定。 -
triggerForPastEvents: (布尔值)指示是否应为过去发生的事件执行处理程序。 值
true
为过去的事件调用处理程序。 值false
为将来的事件提供支持。 默认值为true
。
返回结果
当 triggerForPastEvents
参数 true
,此函数返回 boolean
用于指示事件是否发生在过去的值:
true
:事件在过去发生,将调用处理程序。false
:以前未发生过该事件。
如果 triggerForPastEvents
is false
,则此函数不返回任何值。
示例
以下示例将函数绑定到地理位置存储的数据事件。 函数会使用商店中纬度数据项的值填充页面上的元素。
<div class="location">
<p>latitude: <span id="lat"></span></p>
</div>
<script>
var geostore = ContextHub.getStore("geolocation");
geostore.eventing.on(ContextHub.Constants.EVENT_DATA_UPDATE,getlat,"getlat");
function getlat(){
latitude = geostore.getItem("latitude");
$("#lat").html(latitude);
}
</script>
once(name, handler, selector, triggerForPastEvents) once-name-handler-selector-triggerforpastevents
将函数绑定到事件。 对于事件的首次出现,函数只调用一次。 或者,也可以在建立绑定之前,为过去发生的事件调用函数。
参数
-
名称: (字符串) 事件的名称 将函数绑定到的。
-
处理程序: (函数)要绑定到事件的函数。
-
选择器: (字符串)绑定的唯一标识符。 如果要使用
off
函数来删除绑定。 -
triggerForPastEvents: (布尔值)指示是否应为过去发生的事件执行处理程序。 值
true
为过去的事件调用处理程序。 值false
为将来的事件提供支持。 默认值为true
。
返回结果
当 triggerForPastEvents
参数 true
,此函数返回 boolean
用于指示事件是否发生在过去的值:
true
:事件在过去发生,将调用处理程序。false
:以前未发生过该事件。
如果 triggerForPastEvents
is false
,则此函数不返回任何值。
ContextHub.Utils.inheritance contexthub-utils-inheritance
允许对象继承另一个对象的属性和方法的实用程序类。
函数(ContextHub.Utils.inheritance) functions-contexthub-utils-inheritance
inherit(child, parent) inherit-child-parent
导致对象继承另一个对象的属性和方法。
参数
- 子项: (对象)继承的对象。
- 父项: (对象)用于定义继承的属性和方法的对象。
ContextHub.Utils.JSON contexthub-utils-json
提供了用于将对象序列化为JSON格式并将JSON字符串反序列化为对象的函数。
函数(ContextHub.Utils.JSON) functions-contexthub-utils-json
parse(data) parse-data
将字符串值解析为JSON,并将其转换为Javascript对象。
参数
- 数据: JSON格式的字符串值。
返回结果
Javascript对象。
示例
代码 ContextHub.Utils.JSON.parse("{'city':'Basel','country':'Switzerland','population':'173330'}");
返回以下对象:
Object {
city: "Basel",
country: "Switzerland",
population: 173330
}
stringify(data) stringify-data
将Javascript值和对象序列化为JSON格式的字符串值。
参数
- 数据: 要序列化的值或对象。 此函数支持布尔值、数组值、数字值、字符串值和日期值。
返回结果
序列化的字符串值。 When data
是R egExp
值时,此函数返回空对象。 When data
是函数,返回 undefined
.
示例
以下代码会返回 "{'city':'Basel','country':'Switzerland','population':'173330'}":
ContextHub.Utils.JSON.stringify({
city: "Basel",
country: "Switzerland",
population: 173330
});
ContextHub.Utils.JSON.tree contexthub-utils-json-tree
此类便于处理要存储或从ContextHub存储中检索的数据对象。
函数(ContextHub.Utils.JSON.tree) functions-contexthub-utils-json-tree
addAllItems() addallitems
创建数据对象的副本,并从第二个对象向其添加数据树。 该函数返回副本,且不会修改任何原始对象。 当两个对象的数据树包含相同的键时,第二对象的值将覆盖第一对象的值。
参数
- 树: 复制的对象。
- secondTree: 与
tree
对象。
返回结果
包含合并数据的对象。
cleanup() cleanup
创建对象的副本,查找并删除数据树中不包含值、空值或未定义值的项,然后返回该副本。
参数
- 树: 要清理的对象。
返回结果
已清理的树副本。
getItem() getitem
从键的对象中检索值。
参数
- 树: 数据对象。
- 键: 要检索的值的键。
返回结果
与键相关的值。 当键具有子键时,此函数将返回一个复杂的对象。 当键值的类型为 undefined
, null
的次数。
示例
请考虑以下Javascript对象:
myObject {
user: {
location: {
city: "Basel",
details: {
population: 173330,
elevation: 260
}
}
}
}
以下示例代码会返回值 260
:
ContextHub.Utils.JSON.tree.getItem(myObject, "/user/location/details/elevation");
以下示例代码可检索具有子项的键的值:
ContextHub.Utils.JSON.tree.getItem(myObject, "/user");
该函数返回以下对象:
Object {
location: {
city: "Basel",
details: {
population: 173330,
elevation: 260
}
}
}
getKeys() getkeys
从对象的数据树中检索所有键。 或者,您只能检索特定键子项的键。 您还可以选择指定检索到键值的排序顺序。
参数
- 树: 要从中检索数据树键的对象。
- 父项: (可选)要检索子项目键的数据树中项目的键。
- 订单: (可选)确定返回键的排序顺序的函数。 (请参阅 Array.prototype.sort 在Mozilla开发人员网络上)。
返回结果
一组键。
示例
请考虑以下对象:
myObject {
location: {
weather: {
temperature: "28C",
humidity: "77%",
precipitation: "10%",
wind: "8km/h"
},
city: "Basel",
country: "Switzerland",
longitude: 7.5925727,
latitude: 47.557421
}
}
的 ContextHub.Utils.JSON.tree.getKeys(myObject);
脚本返回以下数组:
["/location", "/location/city", "/location/country", "/location/latitude", "/location/longitude", "/location/weather", "/location/weather/humidity", "/location/weather/precipitation", "/location/weather/temperature", "/location/weather/wind"]
removeItem() removeitem
创建给定对象的副本,从数据树中删除指定的分支,并返回修改后的副本。
参数
- 树:数据对象。
- 键:要删除的键。
返回结果
删除了键的原始数据对象的副本。
示例
请考虑以下对象:
myObject {
one: {
foo: "bar",
two: {
three: {
four: {
five: 5,
six: 6
}
}
}
}
}
以下示例脚本从数据树中删除/one/two/three/four分支:
myObject = ContextHub.Utils.JSON.tree.removeItem(myObject, "/one/two/three/four");
该函数返回以下对象:
myObject {
one: {
foo: "bar"
}
}
sanitingKey(key) sanitizekey-key
整理字符串值以使其可用作键。 要整理字符串,此函数将执行以下操作:
- 将多个连续正斜杠减少为一个斜杠。
- 从字符串的开头和结尾删除空格。
- 将结果拆分为用斜杠标定的字符串数组。
使用生成的数组创建可用键。 参数
- 键: 的
string
整理。
返回结果
数组 string
其中,每个字符串是 key
是用斜杠划定的。 表示已清理的键值。 如果清理后的数组的长度为零,则此函数将返回 null
.
示例
以下代码会清理字符串以生成数组 ["this", "is", "a", "path"]
,然后生成键值 "/this/is/a/path"
从数组:
var key = " / this////is/a/path ";
ContextHub.Utils.JSON.tree.sanitizeKey(key)
"/" + ContextHub.Utils.JSON.tree.sanitizeKey(key).join("/");
setItem(tree, key, value) setitem-tree-key-value
将键/值对添加到对象副本的数据树中。 有关数据树的信息,请参阅 持久性.
参数
- 树:数据对象。
- 键:要与您添加的值关联的键。 键值是数据树中项目的路径。 此函数调用
ContextHub.Utils.JSON.tree.sanitize
以在添加密钥之前对其进行整理。 - 值:要添加到数据树中的值。
返回结果
副本 tree
包含的对象 key
/ value
配对。
示例
请考虑以下Javascript代码:
var myObject = {
user: {
location: {
city: "Basel"
}
}
};
var myKey = "/user/location/details";
var myValue = {
population: 173330,
elevation: 260
};
myObject = ContextHub.Utils.JSON.tree.setItem(myObject, myKey, myValue);
myObject对象具有以下值:
ContextHub.Utils.storeCandidates contexthub-utils-storecandidates
允许您注册存储候选项并获取注册的存储候选项。
函数(ContextHub.Utils.storeCapoints) functions-contexthub-utils-storecandidates
getRegisteredCanapits(storeType) getregisteredcandidates-storetype
返回注册为商店候选项的商店类型。 检索特定存储类型或所有存储类型的注册候选项。
参数
- storeType: (字符串)存储类型的名称。 请参阅
storeType
参数ContextHub.Utils.storeCandidates.registerStoreCandidate
函数。
返回结果
存储类型的对象。 对象属性是存储类型名称,属性值是已注册的存储候选项数组。
getStoreFromCapinates(storeType) getstorefromcandidates-storetype
从已注册的候选项返回存储类型。 如果注册了多个同名的存储类型,则函数将返回具有最高优先级的存储类型。
参数
- storeType:(字符串)存储候选项的名称。 请参阅
storeType
参数ContextHub.Utils.storeCandidates.registerStoreCandidate
函数。
返回结果
表示注册的存储候选项的对象。 如果未注册请求的存储类型,则会引发错误。
getSupportedStoreTypes() getsupportedstoretypes
返回注册为存储候选项的存储类型的名称。 此函数不需要任何参数。
返回结果
字符串值的数组,其中每个字符串是在其中注册存储候选项的存储类型。 请参阅 storeType
参数 ContextHub.Utils.storeCandidates.registerStoreCandidate
函数。
registerStoreCandidate(store, storeType, priority, applies) registerstorecandidate-store-storetype-priority-applies
使用名称和优先级将存储对象注册为存储候选项。
优先级是指示同名商店重要性的数字。 当使用与已注册的存储候选者相同的名称注册存储候选者时,使用具有较高优先级的候选者。 当注册存储候选时,仅当优先级高于同一命名的注册存储候选时,才注册存储。
参数
- 商店: (对象)要注册为存储候选项的存储对象。
- storeType: (字符串)存储候选项的名称。 创建存储候选项的实例时需要此值。
- 优先级: (数字)商店候选项的优先级。
- 应用: (函数)用于调用的函数,该函数可评估存储在当前环境中的可应用性。 函数必须返回
true
如果商店适用,false
否则。 默认值为返回true的函数:function() {return true;}
示例
ContextHub.Utils.storeCandidates.registerStoreCandidate(myStoreCandidate,
'contexthub.mystorecandiate', 0);