如何在 Ruby On Rails 7 中使用 Import Maps 访问 JS 函数?
How access JS function using Import Maps in Ruby On Rails 7?
我是 JS 模块和 Import Map 的新手,现在我在 Rails 7 上使用 Ruby,但我找不到使它工作的方法:
Js模块(proposals.js):
function openProposalMirror() ...
application.js
import * as Proposal from "./proposals.js"
在视图中:
onclick="Proposal.openProposalMirror()"
error: Uncaught ReferenceError: Proposal is not defined
如何访问视图上的 openProposalMirror() 函数?
一种方法是将 Proposal
分配给对象 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()"
您还可以从 application.js
重新导出 Proposal
,然后将其导入并分配给 <script>
标记(在视图中)中的对象 window.Proposal
,如下所示:
// 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>
我是 JS 模块和 Import Map 的新手,现在我在 Rails 7 上使用 Ruby,但我找不到使它工作的方法:
Js模块(proposals.js):
function openProposalMirror() ...
application.js
import * as Proposal from "./proposals.js"
在视图中:
onclick="Proposal.openProposalMirror()"
error: Uncaught ReferenceError: Proposal is not defined
如何访问视图上的 openProposalMirror() 函数?
一种方法是将 Proposal
分配给对象 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()"
您还可以从 application.js
重新导出 Proposal
,然后将其导入并分配给 <script>
标记(在视图中)中的对象 window.Proposal
,如下所示:
// 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>