0

I'm trying to convert the js:

 //  var XComponent = document.registerElement('x-component', {
    //    prototype: Object.create(HTMLElement.prototype, {
    //      createdCallback: {
    //        value: function() {
    //        var root = this.createShadowRoot();
    //        var template = document.querySelector('#template');
    //        var clone = document.importNode(template.content, true);
    //        root.appendChild(clone);
    //      }
    //      }
    //    })
    //  });

into the scalajs:

import org.scalajs.dom.document


object XComponent {

  implicit class ExtendedDom(x: html.Document) {

    def registerElement( name:String, obj: js.Object ): Unit = js.native

  }

}

class XComponent {

  import XComponent._

  val xComponent = document.registerElement("x-component", js.Object {

    ..

  })  


}

Not sure what to do about prototype property..?

ses
  • 13,174
  • 31
  • 123
  • 226
  • Hum ... nothing special. The way it's used here, it's just like any other field of any object. So just create a property named `prototype`. – sjrd May 26 '16 at 03:51

1 Answers1

0

How about this ...

import org.scalajs.dom.{document, html}

import scala.scalajs.js

object XComponent {

  implicit class ExtendedDom(x: html.Document) {

    def registerElement( name:String, obj: js.Object ): Unit = js.native

  }

}


class XComponent {

  import XComponent._

  val xComponent = document.registerElement("x-component", js.Object {

    val prototype = js.Object.create(
      js.Object{
        val createdCallback = js.Object{
          def value = {
            var root = //this.createShadowRoot();
              ...
          }
        }
      }
    )
  })
}
dstibbe
  • 1,589
  • 18
  • 33