如何在 Phoenix 中制作 Javascript 代码 运行?

How to make Javascript code run in Phoenix?

所以我很难让用 app.js 编写的 Javascript 真正起作用。这是我到目前为止所做的:

我做的第一件事就是将代码写入 app.js 文件并希望它能工作。

App.js

import "deps/phoenix_html/web/static/js/phoenix_html"

const selectSort = document.getElementById("sort");
console.log("Herp");
const sortEntities = () => {
  const sortvalue = selectSort.value;
  const entities = document.querySelectorAll(".entitiy");
  const sortedEntities = entities.sort((a, b) =>
     a.querySelector(`.${sortvalue}`).textContent > a.querySelector(`.${sortvalue}`).textContent);
     document.querySelector(".entitiy-list").innerHTML = sortedEntities;
};

selectSort.addEventListener("onChange", sortEntities);

现在我尝试通过控制台访问 selectSort 变量,但未定义。我发现 app.js 自从 运行 windows 以来从未加载过,可以通过在 autoRequire 中添加另一行来修复它。

b运行ch-config.js

<---SNIPPET-->
  modules: {
    autoRequire: {
      "js/app.js": ["web/static/js/app"],
      "js\app.js": ["web/static/js/app"] <-- The line added
    }
  },
<---SNIPPET-->

既然 app.js 文件终于正确加载了,我在 phoenix_html 导入时遇到错误。

错误

Uncaught Error: Cannot find module "deps/phoenix_html/web/static/js/phoenix_html" from "web/static/js/app"

即使我删除了导入,当我将它输入控制台并且代码永远不会执行时,变量仍然无法正确加载,而 console.log 消息被执行。我错过了什么?如果我尝试在控制台中编写代码 window 它工作正常。

该项目本身很旧,可能从 11 月开始,所以我可能 运行 不是最新的 "phoenix template"。不确定那里是否存在与此相关的已知问题,我试着环顾四周。我什至有 "Programming Phoenix",但没有太多关于制作 Javascript 运行 的东西。

我的项目使用了 Phoenix 1.0,它在 Windows 方面存在已知问题并使 Javascript 正常执行。我升级到 1.1.2 现在一切正常。