0

是否可以从 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
4

1 回答 1

1

您无法从您的应用程序直接访问小部件库。当您使用它创建小部件的实例时,Widget.createWidget(widget_name, [controller_name], [params])会加载 widget.js 控制器。

我认为访问你的库的最好方法是将它添加到app/lib因为从你的小部件中你可以访问你的库require(mylib)

如果你真的想从你的小部件访问你的库,你可以创建一个函数来像这样导出它:

在 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/
于 2016-04-19T05:03:37.740 回答