1 回答
TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
我可以確定您的翻譯中的兩個(gè)問(wèn)題。第一個(gè)是import的bpmn-js。JS 導(dǎo)入是
import?Modeler?from?'bpmn-js/lib/Modeler';
應(yīng)該翻譯成
@JSImport("bpmn-js/lib/Modeler",?JSImport.Default)根據(jù)翻譯成的文檔import@JSImport。
另一個(gè)問(wèn)題則更為微妙。在您的調(diào)用中new Modeler,您有
js.Object(
? "container" -> "#canvas"
)
它(也許不幸的是)編譯但不做你認(rèn)為它做的事情。它創(chuàng)建兩個(gè)字符串的 Scala 元組,該元組被傳遞給 JavaScript 函數(shù),Object(...)該函數(shù)實(shí)際上會(huì)按原樣返回它(因?yàn)?Scala 元組已經(jīng)是一個(gè)對(duì)象)。
您想要的是一個(gè)帶有字段的 JavaScript 對(duì)象container,您可以將其寫為
new js.Object {
? val container = "#canvas"
}
更好的方法是在外觀中使選項(xiàng)對(duì)象靜態(tài)類型化:
class BpmnJS(options: BpmnJSOptions) extends js.Object {
? ..
}
trait BpmnJSOptions extends js.Object {
? var container: js.UndefOr[String] = js.undefined
}
這樣,您就可以將其稱為
new BpmnJS(new BpmnJSOptions {
? container = "#canvas"
})
添加回答
舉報(bào)
