2015-05-05 17 views
11

Im Klar JavaScript können Sie tun:Wie benutzt man die Modulkonfiguration von AngularJS mit Scala.js?

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

ich dies versuchen, mit Scala.js zu tun. Ich habe versucht, die folgenden drei Versuche, von denen alle fehlgeschlagen:

Versuch 1: Verwenden scalajs-angular

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

Problem: MyConf muss verlängern Config und ich keine Stelle gefunden, wo ich in Parameter übergeben konnte.

Versuch 2: Verwenden scalajs-angulate

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

Diese sollte Arbeit, aber ich habe einen Compiler-Fehler: not found: value js

Versuch 3: Verwenden Sie die dynamisch API getippt

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

Kompiliert, aber der Inhalt in {} wird nicht aufgerufen.

Der einzige Weg, ich jetzt denken kann, ist das Schreiben einer Javascript-basierten „Bridge“, die etwas tut, wie:

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

wo com.example.myapp.MymoduleConfigurator in Scala geschrieben.

Ist dies der einzige Weg oder gibt es einen besseren Ansatz?

+0

hier ist ein Beispiel unter Verwendung von scalajs-Winkel https://github.com/olivergg/scalajs-ionic-starttabs/blob/master/app-js/src/main/ scala/com/olivergg/starttabs/IonicStartTabsApp.scala – invariant

+0

Danke, ich werde das heute Abend versuchen. – rabejens

Antwort

1

Für diejenigen, die Antworten auf diese Frage suchen. Es wurde von der OP über auf GitHub mit der Umgehung der folgenden Import hinzuzufügen ist aufgelöst:

import scalajs.js 

Auch in Debuggen von Problemen zu helfen, können Sie add flags auf Ihre build.sbt Datei ein Protokoll des generierten Codes zu erzeugen, bei der Kompilierung auf stdout wie so:

// 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"