scala.js调用外部js函数

时间:2016-10-31 08:32:31

标签: javascript salesforce scala.js

我想尝试在scala.js项目中使用SalesForce

SalesForce会自动注入Visualforce.remoting.Manager.invokeAction(...)函数以启用查询数据并执行dml

如何从scala.js调用此函数?

2 个答案:

答案 0 :(得分:1)

在最粗糙的意义上,您可以使用js.Dynamic直接从全局范围调用它,例如:

js.Dynamic.global.Visualforce.remoting.Manager.invokeAction(...)

这适用于一次性,但是如果您要使用此管理器更多地工作,我可能会建议为Manager创建a Scala.js facade,并将Manager对象分配给它 - 它从长远来看,可能会产生更好的代码。

答案 1 :(得分:0)

您应该能够使用

从scala-js调用任何公开的javascript方法
scala.scalajs.js.eval(x: String)

调用bootbox模态的示例:

 import scala.scalajs.js.annotation.JSExportTopLevel
 import scala.scalajs.js

 @JSExportTopLevel("myCallBack")
 protected def confirmCallback() = // do stuff

 def askAQuestion(): Unit = {
    js.eval("bootbox.confirm(\"Your question goes here.\", function(result) { if (result == true) { myCallBack(); }});")
 }

当然要执行此操作,您必须在项目中包含javascript库。

由于这是一个非常混乱的解决方案,因此您可以考虑编写自己的外观。