2016-04-18 6 views
0

Ist es möglich, über einen appController auf eine Bibliotheksdatei unter einem widget/lib-Ordner zuzugreifen?Wie benötigt man ein Widget/Lib in der App/Controller?

Ich versuchte

require('./widgets/com.myWidget/lib/myLib') 

und

require('widgets/com.myWidget/lib/myLib') 

Alle diese Wurf Fehler:

[ERROR] : Script Error Couldn't find module: ./widgets/com.myWidget/lib/myLib for architecture: i386 

Wie benötige ich com.myWidget/lib/myLib.js in controllers/myCtrlr.js?

Oder sollte alle Lib-Code nur unter app/lib leben?

app 
|--assets 
|--controllers 
    |--myCtrlr.js 
|--lib 
|--models 
|--styles 
|--views 
|--widgets 
    |--com.myWidget 
     |--assets 
     |--controllers 
     |--lib 
      |--myLib.js 
     |--models 
     |--styles 
     |--views 

Antwort

1

Sie können nicht direkt Widget Widget von Ihrer App zugreifen. Wenn Sie eine Instanz Ihres Widgets mit Widget.createWidget(widget_name, [controller_name], [params]) erstellen, laden Sie den widget.js-Controller.

Ich denke, der beste Weg, um Ihre lib zuzugreifen, ist es von Ihrem Widget in app/lib hinzufügen Da können Sie Ihre lib Zugang mit require(mylib)

Wenn Sie wirklich Ihre lib von Ihrem Widget zugreifen möchten, können Sie eine Funktion erstellen können zu exportieren, es wie folgt aus:

In widget.js:

$.loadLib = function(){ 
return require(WPATH(myLib)); 
}; 

In index.js:

var w = Widget.createWidget('com.myWidget'); 
var myLib = w.loadLib(); //contains myLib located in com.myWidget/lib/