new MonitorDataComponent()
监控数据组件,用于管理和订阅对象的属性变化。
Example
// 订阅任何数据变化
let watcher1 = obj.monitorData.subscribe((ev) => {
console.log(ev.data); // 变化的数据
console.log(obj.monitorData); // 完整的数据
});
// 订阅特定数据变化
let watcher2 = obj.monitorData.subscribe(["power", "freq"], (ev) => {
console.log(ev.data["power"]);
console.log(ev.data["freq"]);
});
// 订阅单个数据变化
let watcher3 = obj.monitorData.subscribe("power", (ev) => {
console.log(ev.data["power"]);
});
// 获取监控属性
let power = obj.monitorData["power"];
let freq = obj.monitorData["freq"];
// 设置监控属性
obj.monitorData.setAttributes({
"power": 3200,
"brand": "ant",
"freq": 95
});
// 取消特定订阅
obj.monitorData.unsubscribe(watcher1);
// 取消所有订阅
obj.monitorData.unsubscribeAll();
// 清空所有属性(不会取消订阅)
obj.monitorData.clearAttributes();
Extends
Members
-
active :boolean
-
激活或停用组件。
- Overrides:
-
app :THING.App
-
获取应用程序。
- Overrides:
-
object :THING.BaseObject
-
获取对象。
- Overrides:
-
onActiveChange :OnActiveChangeComponentCallback
-
活动状态改变时的回调函数。
- Overrides:
-
onAfterAdd :OnAfterAddComponentCallback
-
添加之后。
- Overrides:
-
onAfterAddChild :OnAddChildComponentCallback
-
添加子对象之后的回调函数。
- Overrides:
-
onAfterRemove :OnAfterRemoveComponentCallback
-
移除之后。
- Overrides:
-
onAfterRemoveChild :OnRemoveChildComponentCallback
-
移除子对象之后的回调函数。
- Overrides:
-
onBeforeAdd :OnBeforeAddComponentCallback
-
添加之前。
- Overrides:
-
onBeforeAddChild :OnAddChildComponentCallback
-
添加子对象之前的回调函数。
- Overrides:
-
onBeforeRemove :OnBeforeRemoveComponentCallback
-
移除之前。
- Overrides:
-
onBeforeRemoveChild :OnRemoveChildComponentCallback
-
移除子对象之前的回调函数。
- Overrides:
-
onCopy :OnCopyComponentCallback
-
复制时的回调函数。
- Overrides:
-
onExport :OnExportComponentCallback
-
导出数据时。
- Overrides:
-
onImport :OnImportComponentCallback
-
导入数据时。
- Overrides:
-
onInit :OnInitComponentCallback
-
初始化时的回调函数。
- Overrides:
-
onLoadResource :OnLoadResourceComponentCallback
-
加载资源时的回调函数。
- Overrides:
-
onParentChange :OnParentChangeComponentCallback
-
改变父对象时的回调函数。
- Overrides:
-
onRefresh :OnRefreshComponentCallback
-
刷新时的回调函数。
- Overrides:
-
onResize :OnResizeComponentCallback
-
调整大小时的回调函数。
- Overrides:
-
onUnloadResource :OnUnloadResourceComponentCallback
-
卸载资源时的回调函数。
- Overrides:
-
onUpdate :OnUpdateComponentCallback
-
更新时的回调函数。
- Overrides:
-
onVisibleChange :OnVisibleChangeComponentCallback
-
可见性改变时的回调函数。
- Overrides:
Methods
-
clearAttributes()
-
清除所有被监控的属性
Example
// 清除所有监控属性 obj.monitorData.clearAttributes(); -
onRemove()
-
当移除组件时。
- Overrides:
-
setAttributes(name, valueopt)
-
设置一个或多个属性
Parameters:
Name Type Attributes Description namestring | object 属性名或包含多个属性的对象 value* <optional>
如果name是字符串,则为要设置的值 Example
// 设置单个属性 obj.monitorData.setAttributes("power", 3200); // 设置多个属性 obj.monitorData.setAttributes({ power: 3200, freq: 95, brand: "ant" }); // 使用路径设置嵌套属性 obj.monitorData.setAttributes("status/power", 3200); -
subscribe(key, fnopt) → {object|Array.<object>}
-
订阅属性变化
Parameters:
Name Type Attributes Description keystring | Array.<string> | function 要订阅的属性名(可以是数组),或者用于所有变化的回调函数 fnfunction <optional>
如果key不是函数,则为回调函数 Returns:
object | Array.<object> - 订阅对象或订阅对象数组Example
// 订阅所有变化 let watcher1 = obj.monitorData.subscribe((ev) => { console.log(ev.data); // 变化的数据 }); // 订阅多个属性 let watcher2 = obj.monitorData.subscribe(["power", "freq"], (ev) => { console.log(ev.data.power); console.log(ev.data.freq); }); // 订阅单个属性 let watcher3 = obj.monitorData.subscribe("power", (ev) => { console.log(ev.data.power); }); -
unsubscribe(subscriber)
-
取消订阅属性变化
Parameters:
Name Type Description subscriberobject | Array.<object> 由subscribe()返回的订阅对象或订阅对象数组 Example
// 取消单个订阅 obj.monitorData.unsubscribe(watcher1); // 取消多个订阅 obj.monitorData.unsubscribe([watcher1, watcher2]); -
unsubscribeAll()
-
取消所有属性变化的订阅
Example
// 取消所有订阅 obj.monitorData.unsubscribeAll();