如何通过组件方式注册表达式编辑器中函数?
目的:
用户可以注册app制作中的表达式编辑器的函数
方案:
通过组件引入的方式描述需要注册的静态函数(这里讨论的是前端表达式编辑器的注册方式,gox5的表达式编辑器统一走xdoc的描述就可以)
描述规范:
1.组件前端部分的组件目录下 创建fn目录
2.在fn目录创建和组件同名的函数描述问题(注意命名归法和目录规范)
- 例如geoPositionInfo组件的ui2函数描述文件 应该为geoPositionInfo\UI2\geoPositionInfo\fn\geoPositionInfo.fn.xml
- 同理 函数的实现文件应该为 geoPositionInfo\UI2\geoPositionInfo\fn\geoPositionInfo.fn.js
- 例如geoPositionInfo组件的uix函数描述文件 应该为geoPositionInfo\UI2\geoPositionInfo\fn\geoPositionInfo.fn.wx.xml
- 同理 函数的实现文件应该为 geoPositionInfo\UI2\geoPositionInfo\fn\geoPositionInfo.fn.wx.js
组件函数注册规范 统一注册在全局变量下,注册格式如下
UIX wx.fns.GeoPositionInfo.api (wx.fns为规定命名空间 GeoPositionInfo为组件命名的大驼峰)
UI2 justep.fns.GeoPositionInfo.api
描述文件示例内容(UIX):
<config>
<funcs>
<item nodeType="category" name="" text="地理位置函数" asPath="false">
<item nodeType="function" name="wx.fns.GeoPositionInfo.test" text="测试函数"
label="测试函数" resultType="String">
<item nodeType="param" name="str" label="字符串" text="" dataType="String" />
</item>
</item>
</funcs>
</config>
对应的函数文件示例代码(UIX)
wx.fns = wx.fns || {};
export default wx.fns.GeoPositionInfo = {
test:function(param){
return param;
}
};
描述文件示例内容(UI2)
<config>
<funcs>
<item nodeType="category" name="" text="地理位置函数" asPath="false">
<item nodeType="function" name="justep.fns.GeoPositionInfo.testa" text="测试api"
label="测试api" resultType="String">
<item nodeType="param" name="str" label="字符串" text="" dataType="String" />
</item>
</item>
</funcs>
</config>
对应函数文件示例代码(UI2)
justep.fns = justep.fns || {};
justep.fns.GeoPositionInfo = {
testa:function(param){
return param;
}
};