Scalajs + Angularjs 如何使用外部 javascript 插件
Scalajs + Angularjs how to use external javascript plugin
我正在尝试在我的 ScalaJs Angular 指令中使用外部 JavaScript 插件。
我不知道这样做的最佳方法,所以目前我将此功能添加到 window
。
javascript 插件如下所示:
(function(){
"use strict";
SmartCrop.crop = function() {
//some function
}
SmartCrop.options = {
//options
}
//...
window.SmartCrop = SmartCrop // I added this line
})()
但我不知道如何在我的 scalaJs 代码中访问 window.SmartCrop。
我在我的指令中尝试这样做,但没有成功(请查看我在以下代码中写的注释):
@JSExport
@injectable("smartCrop")
class SmartCropDirective(window: Window) extends ElementDirective with TemplatedDirective {
override val templateUrl = "assets/templates/smartcrop/smartcrop.html"
override def link(scope: ScopeType, elements: Seq[Element], attrs: Attributes): Unit = {
// I can found window.SmartCrop in my console if I log window
console.log(window)
// this line is not working but I'm looking for something similar:
window.SmartCrop.crop()
}
}
所以,我正在寻找使用这个插件的好方法。
像这样:
@js.native
object SmartCrop extends js.Object {
def crop(): Unit
}
...
SmartCrop.crop()
有关详细信息,请参阅 Write JavaScript facades guide。
我正在尝试在我的 ScalaJs Angular 指令中使用外部 JavaScript 插件。
我不知道这样做的最佳方法,所以目前我将此功能添加到 window
。
javascript 插件如下所示:
(function(){
"use strict";
SmartCrop.crop = function() {
//some function
}
SmartCrop.options = {
//options
}
//...
window.SmartCrop = SmartCrop // I added this line
})()
但我不知道如何在我的 scalaJs 代码中访问 window.SmartCrop。
我在我的指令中尝试这样做,但没有成功(请查看我在以下代码中写的注释):
@JSExport
@injectable("smartCrop")
class SmartCropDirective(window: Window) extends ElementDirective with TemplatedDirective {
override val templateUrl = "assets/templates/smartcrop/smartcrop.html"
override def link(scope: ScopeType, elements: Seq[Element], attrs: Attributes): Unit = {
// I can found window.SmartCrop in my console if I log window
console.log(window)
// this line is not working but I'm looking for something similar:
window.SmartCrop.crop()
}
}
所以,我正在寻找使用这个插件的好方法。
像这样:
@js.native
object SmartCrop extends js.Object {
def crop(): Unit
}
...
SmartCrop.crop()
有关详细信息,请参阅 Write JavaScript facades guide。