2015-12-14 2 views
0

Я пытаюсь использовать внешний JavaScript-плагин в своей директиве ScalaJs Angular. Я не знаю, как это сделать, поэтому я добавил эту функцию в window.Scalajs + Angularjs как использовать внешний плагин javascript

Код JavaScript плагин выглядит следующим образом:

(function(){ 
    "use strict"; 
    SmartCrop.crop = function() { 
    //some function 
    } 
    SmartCrop.options = { 
    //options 
    } 
    //... 

    window.SmartCrop = SmartCrop // I added this line 
})() 

Но я не знаю, как получить доступ к window.SmartCrop в моем scalaJs коде.

Я пытался сделать это в моей директиве, но без успеха (пожалуйста, обратите внимание на комментарии, которые я написал в следующем коде):

@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() 
    } 
} 

Итак, я искал хороший способ используйте этот плагин.

ответ

1

Что-то вроде этого:

@js.native 
object SmartCrop extends js.Object { 
    def crop(): Unit 
} 

... 
SmartCrop.crop() 

Для получения дополнительной информации см Write JavaScript facades guide.

Смежные вопросы