javascript - 如何在 Scala.js 中使用 AngularJS 的模块配置?

标签 javascript angularjs scala ionic-framework scala.js

在纯 JavaScript 中你可以这样做:

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

我正在尝试使用 Scala.js 来做到这一点。我尝试了以下三种尝试,均失败了:

尝试 1:使用 scalajs-angular

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

问题:MyConf 必须扩展 Config 而我没有找到任何可以传递参数的位置。

尝试 2:使用 scalajs-angulate

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

应该工作,但我得到一个编译器错误:not found: value js

尝试 3:使用动态类型的 API

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

编译,但不会调用 {} 中的内容。

我现在能想到的唯一方法是编写一个基于 javascript 的“Bridge”,它的作用如下:

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

其中 com.example.myapp.MymoduleConfigurator 是用 Scala 编写的。

这是唯一的方法还是有更好的方法?

最佳答案

对于那些正在寻找这个问题的答案的人。 OP 在 GitHub 上解决了这个问题解决方法是添加以下导入:

import scalajs.js

此外,为了帮助调试您的问题,您可以 add flags到您的 build.sbt 文件,以在编译时将生成的代码生成到标准输出的日志,如下所示:

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

关于javascript - 如何在 Scala.js 中使用 AngularJS 的模块配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30063384/

相关文章:

scala - 如何使用组合键?

scala - 为 Scala 2.12(Play Framework)添加 Flyway-sbt 插件时出错

java - 具有高级属性的 MySQL 连接,例如 program_name

javascript - AngularJS 策略防止类的无样式内容闪现

javascript - Promise.all() 和 then() 问题

javascript - 热修复 "Type ' 字符串'不可分配给类型 'T'“?

javascript - AngularJS $http.get() 在 Chrome 中最多需要 10-20 秒,在 Firefox 中运行良好

angularjs - $http.post : Large files do not work

javascript - Angularjs 选项卡仅适用于使用 ng-repeat 的唯一数组元素

javascript - format.js 未执行(ajax)