0

我是 JS 模块和 Import Map 的新手,现在我使用的是 Ruby on Rails 7,但我找不到让它工作的方法:

Js 模块(proposals.js):

function openProposalMirror() ...

应用程序.js

import * as Proposal from "./proposals.js"

在观点上:

onclick="Proposal.openProposalMirror()"

错误:未捕获的 ReferenceError:未定义提案

如何访问视图上的 openProposalMirror() 函数?

4

1 回答 1

2

一种方法是将 分配Proposal给 object window.Proposal

你可以直接在里面设置application.js如下:

// proposals.js
function openProposalMirror() {}
export { openProposalMirror }

// application.js
import * as Proposal from "./proposals.js"
window.Proposal = Proposal

// view
onclick="Proposal.openProposalMirror()"

您还可以重新导出Proposal然后application.js导入并将其分配给标签中的对象window.Proposal<script>在视图中),如下所示:

// application.js
import * as Proposal from "./proposals.js"
export { Proposal };

// view
<%= javascript_importmap_tags %>

<script type="module">
  import { Proposal } from "application"
  window.Proposal = Proposal;
</script>
于 2022-01-13T04:18:05.260 回答