是否可以从appController访问widget / lib文件夹下的库文件?
我试过
require('./widgets/com.myWidget/lib/myLib')
和
require('widgets/com.myWidget/lib/myLib')
所有这些抛出错误:
[ERROR] : Script Error Couldn't find module: ./widgets/com.myWidget/lib/myLib for architecture: i386
如何com.myWidget/lib/myLib.js
中需要controllers/myCtrlr.js
?
或者所有lib代码是否只能在app/lib
下生效?
app
|--assets
|--controllers
|--myCtrlr.js
|--lib
|--models
|--styles
|--views
|--widgets
|--com.myWidget
|--assets
|--controllers
|--lib
|--myLib.js
|--models
|--styles
|--views
答案 0 :(得分:1)
您无法直接从应用中访问widget lib。当您使用Widget.createWidget(widget_name, [controller_name], [params])
创建窗口小部件的实例时,它会加载widget.js控制器。
我认为访问您的lib的最佳方式是在app/lib
中添加它。因为从您的小部件中,您可以使用require(mylib)
如果你真的想从你的小部件访问你的lib,你可以创建一个函数来导出它:
在widget.js中:
$.loadLib = function(){
return require(WPATH(myLib));
};
在index.js中:
var w = Widget.createWidget('com.myWidget');
var myLib = w.loadLib(); //contains myLib located in com.myWidget/lib/