2015-05-05 14 views
11

In parole povere JavaScript si può fare:Come utilizzare la configurazione del modulo di AngularJS con Scala.js?

angular.module('mymodule', ['ionic']) 
    .config(function($someParam1, $someParam2) { 
    // do something with the parameters 
} 

che sto cercando di fare questo con Scala.js. Ho provato le seguenti tre tentativi, tutti falliti:

Tentativo 1: Usa scalajs-angular

Angular.module("mymodule", Seq("ionic")).config(MyConf) 

Problema: MyConf deve estendere Config e non ho trovato alcun luogo in cui ho potuto passare parametri.

Tentativo 2: Usa scalajs-angulate

Angular.module("mymodule", Seq("ionic")).config((a: Any, b: Any) => {...}) 

Questo dovrebbe lavoro, ma ottengo un errore di compilazione: not found: value js

Tentativo 3: Utilizzare il digitato in modo dinamico API

global.angular.module("mymodule", Seq("ionic")).config((a: Any, b: Any) => {...}) 

Compila, ma il contenuto all'interno di {} non viene chiamato.

L'unico modo che posso pensare ora sta scrivendo un javascript based "ponte", che fa qualcosa di simile:

angular.module('mymodule', ['ionic']).config(function($a, $b) { 
    com.example.myapp.MymoduleConfigurator.config($a, $b); 
} 

dove com.example.myapp.MymoduleConfigurator è scritto in Scala.

È questo l'unico modo o c'è un approccio migliore?

+0

ecco un esempio usando scalajs-angolare https://github.com/olivergg/scalajs-ionic-starttabs/blob/master/app-js/src/main/ scala/com/olivergg/starttabs/IonicStartTabsApp.scala – invariant

+0

Grazie, ci proverò stasera. – rabejens

risposta

1

Per coloro che cercano risposte a questa domanda. E 'stato risolto dal PO Oltre GitHub con la soluzione è quello di aggiungere la seguente importazione:

import scalajs.js 

Inoltre, per aiutare nel debug problemi, è possibile add flags al file build.sbt per generare un log del codice generato stdout al momento della compilazione modo:

// print code for angulate's Module enhancements 
scalacOptions += "-Xmacro-settings:biz.enef.angulate.ModuleMacros.debug" 

// print code generated for calls to module.controllerOf[] 
scalacOptions += "-Xmacro-settings:biz.enef.angulate.ControllerMacros.debug" 

// print code generated for calls to module.directiveOf[] 
scalacOptions += "-Xmacro-settings:biz.enef.angulate.DirectiveMacros.debug" 

// print code generated for calls to module.serviceOf[] 
scalacOptions += "-Xmacro-settings:biz.enef.angulate.ServiceMacros.debug" 

// print code generated for calls to module.componentOf[] 
scalacOptions += "-Xmacro-settings:biz.enef.angulate.ComponentMacros.debug" 

// print code generated for function DI 
scalacOptions += "-Xmacro-settings:biz.enef.angulate.AnnotationMacros.debug" 

// print code generated by angulate's HttpPromise extensions 
scalacOptions += "-Xmacro-settings:biz.enef.angulate.HttpPromiseMacros.debug" 

// enable logging of all registered services, controllers, and directives at run time 
scalacOptions += "-Xmacro-settings:biz.enef.angulate.runtimeLogging" 
Problemi correlati