2015-05-05 15 views
11

Trong đồng bằng JavaScript bạn có thể làm:Làm thế nào để sử dụng cấu hình module của AngularJS với Scala.js?

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

Tôi cố gắng để làm điều này với Scala.js. Tôi đã cố gắng ba lần sau, tất cả đều thất bại:

Cố gắng 1: Sử dụng scalajs-angular

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

Vấn đề: MyConf phải mở rộng Config và tôi đã không tìm thấy bất kỳ vị trí nơi tôi có thể vượt qua trong các thông số.

Cố gắng 2: Sử dụng scalajs-angulate

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

này nên làm việc, nhưng tôi nhận được một lỗi biên dịch: not found: value js

Nỗ lực 3: Sử dụng kiểu động API

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

Biên dịch, nhưng nội dung bên trong {} không được gọi.

Cách duy nhất tôi có thể nghĩ đến bây giờ được viết một javascript dựa "Cầu" mà làm điều gì đó như:

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

nơi com.example.myapp.MymoduleConfigurator được viết bằng Scala.

Đây có phải là cách duy nhất hoặc có cách tiếp cận tốt hơn không?

+0

đây là một ví dụ sử dụng scalajs-góc https://github.com/olivergg/scalajs-ionic-starttabs/blob/master/app-js/src/main/ scala/com/olivergg/starttabs/IonicStartTabsApp.scala – invariant

+0

Cảm ơn, tôi sẽ cố gắng tối nay. – rabejens

Trả lời

1

Đối với những người đang tìm câu trả lời cho câu hỏi này. Nó đã được giải quyết bởi các OP qua trên GitHub với cách giải quyết là để thêm việc nhập khẩu như sau:

import scalajs.js 

Ngoài ra, để hỗ trợ trong gỡ lỗi các vấn đề của bạn, bạn có thể add flags đến file build.sbt của bạn để tạo ra một bản ghi của các mã được tạo stdout tại thời gian biên dịch như sau:

// 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" 
Các vấn đề liên quan