我正在创建一个节点快递应用,并将ejs作为模板系统。
现在在我的new.ejs
文件中,我想用javascript清除它,因此它将是纯html。
我的new.ejs
中有一个这样的脚本。
<script>
let amount;
function calculate(){
let numOfPersons = Number($('#numOfPersons').val());
let tourPrice = Number("<%= tour.price %>"); //ejs object here
let totalPrice = numOfPersons * tourPrice
$("#total").val(totalPrice);
amount = totalPrice
}
</script>
现在,我尝试将其传输到我的public/javascript/calculate.js
文件中,但是说tour is not defined
是因为<%= tour %>
并未导入calculate.js
文件中。
为清理代码,我在new.ejs
<script src="javascripts/calculate.js">
export default "<%= tour %>" //this is the name of my object
</script>
和calculate.ejs
内
import {tour} from "../../views/booking/new.js";
let amount;
function calculate(){
let numOfPersons = Number($('#numOfPersons').val());
let tourPrice = Number("<%= tour.price %>");
let totalPrice = numOfPersons * tourPrice
$("#total").val(totalPrice);
amount = totalPrice
}
但是它不起作用。我尝试咨询MDN进行导入和导出,但我认为我的语法正确但无法正常工作。
我做错了什么?请帮忙。
谢谢
答案 0 :(得分:1)
当默认导出时,不需要在变量周围使用{}。尝试删除
在您的代码中
import {tour} from "../../views/booking/new.js"
但是我认为没有名为new.js的文件,应该是new.ejs,如果无法正常使用,请告诉我。此外,如果您想在大多数时间将任何变量从ejs页面传递到服务器,我们将在主体参数中绑定值,并在指向/必需的位置使用该值。