我很难通过使用select
标记并使用JQuery获取值来尝试更新货币交换。
我最初的计划是使用来自Meteor车把的{{#if}}
来做逻辑。使用MongoDB切换字段时,当用户点击不同的选项时,它会自动切换货币字段。
我目前正在使用名为theara:moneyjs
的Meteor包。点击here,了解包裹信息。
这是我目前的代码:
HTML
<template name="product_table">
<table>
<thead>
<tr>
<th>Product Name</th>
<th>Currency
<select id="currency">
<option value="aud">AUS Dollar</option>
<option value="usd">US Dollar</option>
<option value="hkd">HK Dollar</option>
</select>
{{#each product}}
<tbody>
<tr>
<td>{{productName}}</td>
<td>{{productPrice}}</td>
<!-- {{#if getEXR}} Does not work, since is not a boolean value
<td>{{productPrice}}</td>
{{/if}} -->
</tr>
</tbody>
{{/each}}
</table>
</template>
的JavaScript
Template.product_table.helpers({
product: function() {
return Products.find({}, {sort:{createdAt:-1}});
},
getEXR: function() {
$(document).on('change', '#currency', function () {
var getCurrency = $("#currency option:selected").val();
if (getCurrency === "aud") {
//I am not quite sure, how grab specific field values from MongoDB
fx.convert(Products.find().productPrice()).from("USD").to("AUD");
}
else if (getCurrency === "usd") {
fx.convert(Products.find().productPrice()).from("USD").to("USD");
}
else if (getCurrency === "hkd") {
fx.convert(Products.find().productPrice()).from("USD").to("HKD");
}
}
)};
任何帮助都将不胜感激。
答案 0 :(得分:1)
您还需要从getEXR帮助程序而不是游标返回单个值。再加上你的助手没有回复任何东西!
你甚至不需要布尔值。请改用Session变量(或反应变量)。见下文:
<强> HTML 强>
<template name="product_table">
<table>
<thead>
<tr>
<th>Product Name</th>
<th>Currency
<select id="currency">
<option value="AUD">AUS Dollar</option>
<option value="USD">US Dollar</option>
<option value="HKD">HK Dollar</option>
</select>
{{#each product}}
{{> oneProduct}}
{{/each}}
</table>
</template>
<template name="oneProduct">
<tbody>
<tr>
<td>{{productName}}</td>
<td>{{productPrice}}</td>
<td>{{localPrice}}</td>
</tr>
</tbody>
</template>
<强>的JavaScript 强>
Template.product_table.helpers({
product: function() {
return Products.find({}, {sort:{createdAt:-1}});
}
)};
Template.product_table.events({
'change #currency': function(ev){
Session.set('currency') = $("#currency option:selected").val();
}
});
Template.oneProduct.helpers({
// with a nested template the data context (this) becomes a single product
localPrice: function() {
var currency = Session.get('currency');
return fx.convert(this.productPrice()).from("USD").to(currency);
}
)};
您可能还希望进行默认货币转换,并在模板的onCreated处理程序中初始化currency
会话变量。
答案 1 :(得分:0)
getEXR必须返回一个布尔值。 它不像Javascript,火焰不评价这个。你必须做一个帮助,返回一个布尔值
答案 2 :(得分:0)
正如我在评论中提到的那样,您应该按照入门教程进行操作,但这里的关键组件是您必须