首页专栏详情
打赏
ThingsBoard教程(十四):部件库基本JS函数API解释,及变量的使用,显示
易百纳技术社区 不完整教程 2021-07-23 15:56:25

前言

各位读者好,截止目前,ThingsBoard系列文章已经做了十篇,分别是

上一篇TB教程我们讲解了部件库的一些基本API,这些API大多是静态的变量,当如果我们要开发更为复杂的部件,还需要知道部件提供的JS 接口。 为了实现一个新的部件,我们还需要一些JavaScript让部件的功能更加强大,比如为按钮添加一个点击事件,比如监听部件的大小改变,以及或我们的部件配置数据。 这些函数是可选的,你可以使用,也可以不使用。每一个函数都实现了一个部件的特殊行为,下面我们一起来认识一下这些函数吧。

onInit()

部件加载完毕后第一个触发的函数,用于部件的初始化。在触发该函数时,表明部件的dom已经准备好,可以放心地获取,使用dom元素。可以在该函数里 处理小部件设置和初始订阅信息。比如为一个按钮增加一个点击事件。

onDataUpdated()

当部件订阅的数据更新或会触发该函数,最新的数据(由defaultSubscription object定义的)能够被访问从部件的上下文里。 如下图的报警表格,就是使用了该方法。才能保证显示最新的数据。

onResize()

当组件调整了大小后,该函数会被触发。最新的height,width将被赋值到 部件的上下中 ctx中。 下图的控制面板,就是使用了该函数,能够保证控制台能够跟随窗口缩放改变大小。

onEditModeChanged()

当仪表盘编辑模式被改变时调用,最新的模式被ctxisEdit 函数接收

onMobileModeChanged()

当仪表盘的宽度低于手机的像素值时,会触发该函数,最新的状态被ctx 中的isMobile 属性接收。

onDestroy()

当部件的节点被销毁是触发,应该在此函数里清空所有不必要的资源。

getSettingsSchema()

改函数会返回一个部件设置的json对象,它是在 Setting tab中设置的 Settings schema section。

getDataKeySettingsSchema()

可选函数,从 Settings schema section. 对象中, 返回一个特定key的数据。

typeParameters()

返回部件类型的参数。用于描述部件数据源的参数。 请参阅 Type parameters object.

actionSources()

返回一个map对象,用于定义部件的额外操作,有用户定义的。 请参阅 Action sources object.

下面演示一下如何将数据显示在html中,创建一个静态页面的组件。 html

<div>
    <div *ngFor="let dataKeyData of testdata" >
         <p>name: {{dataKeyData.name}}</p>
         <p>age: {{dataKeyData.age}}</p>
         <p>sex: {{dataKeyData.sex}}</p>
    </div>
</div>
self.onInit = function() {
    self.ctx.$scope.testdata = [
        {name: 'fizz', age:29, sex:'meal'}
     ]
}

编辑完成后,点击保存。 就会显示以下页面。 在这里插入图片描述

这里涉及一点点angular的技术, 在html中展示一个变量需要使用 {{变量名}} 这种写法。 当然变量并必须被声明在 self.ctx.$scope

遍历一个数组使用 *ngFor="let dataKeyData of testdata" testdataself.ctx.$scope 下的变量。dataKeyData 是每一个资源

如果你要为某一个div或者button 增加点击事件,那么就比较麻烦,需要在部件的高级功能中增加action。这一部分我们下一章节来介绍。

学习是持之以恒,循序渐进的。

好了,本篇的内容就到这里。对你有帮助的话,就请点一个赞吧。


声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。

7780
1
97
打赏
共1人已赏
完整的教程https://fizzz.blog.csdn.net。该网站都是残缺
评论
0个
内容存在敏感词
相关专栏
打赏作者
易百纳技术社区
不完整教程
您的支持将鼓励我继续创作!
打赏金额:
¥1 易百纳技术社区
¥5 易百纳技术社区
¥10 易百纳技术社区
¥50 易百纳技术社区
¥100 易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区 微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
Loading...
易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区
易百纳技术社区
在专栏模块发布专栏,可获得其他E友的打赏
易百纳技术社区
回答悬赏问答,被题主采纳后即可获得悬赏金
易百纳技术社区
在上传资料时,有价值的资料可设置为付费资源
易百纳技术社区
达到一定金额,收益即可提现~
收益也可用来充值ebc,下载资料、兑换礼品更容易
易百纳技术社区
活动规则
  • 1.周任务为周期性任务,每周周一00:00刷新,上周完成的任务不会累计到本周,本周需要从头开始任务,当前任务完成后才可以完成下一个任务
  • 2.发布的专栏与资料需要与平台的板块有相关性,禁止注水,专栏/资料任务以审核通过的篇数为准,专栏需为原创文章且首次在社区发布
  • 3.任务完成后,现金奖励直接打款到微信账户;EBC/收益将自动发放到个人账户,可前往“我的钱包”查看;其他奖励请联系客服兑换
易百纳技术社区
升级提醒
易百纳技术社区

恭喜您由入门

社区送出礼品一份

请填写您的收件地址,礼品将在3个工作日寄出

易百纳技术社区