尝试动态计算某些值,但卡住了。很想计算税额并显示它们。在cart.js之前,我们分配了一些非常好的临时变量。
毋庸置疑,现在也需要更新。
<div class="grid__item">
{% assign var_net = cart.total_price | divided_by:1.19 %}
{% assign var_tax = cart.total_price | minus: var_net %}
<p>
{{ cart.total_price | money_without_currency }} EUR<br/>
—<br/>
{{ var_net | money_without_currency }} EUR<br/>
{{ var_tax | money_without_currency }} EUR<br/>
—<br/>
{{ cart.total_price | money_without_currency }} EUR
</p>
</div>
这得出了价格:
<span rv-html="cart.total_price"></span>
但我们如何进行上述计算?
答案 0 :(得分:1)
首先,您需要确保使用捆绑了Rivets.js的Cart.js版本(它在Cart.js包中显示为for i in range(3):
for k,v in dict_1.items():
for x,y in dict_2.items():
if k == x:
for j in v:
if j in y[i]:
print j,x,i
)。
您可以使用与Liquid相似的方式在主题模板中使用多个过滤器 - 例如:
rivets-cartjs.min.js
这将使用Liquid呈现初始页面加载的总价格,并保持<div class="grid__item" data-cart-view>
<p>
<span rv-text="cart.total_price | money_without_currency">
{{ cart.total_price | money_without_currency }}
</span> EUR
</p>
</div>
的文本动态更新。请注意添加<span>
属性,该属性告诉Cart.js在购物车更改时动态更新此元素的内容。
动态实施data-cart-view
和var_net
会有点棘手。 Cart.js附带了数学过滤器,但只有var_tax
和plus
,他们假设您只使用整数(我只需要opened a ticket来修复下一个版本)
幸运的是,我们可以非常简单地为Cart.js定义自己的格式化程序!在加载minus
之后但在调用rivets-cart.min.js
之前尝试添加一些这样的代码:
CartJS.init()
完成此操作后,您应该能够在Liquid代码中实现准确的初始渲染,并使用如下模板动态更新:
<script>
rivets.formatters.var_net = function(price) {
return price / 1.19;
}
rivets.formatters.var_tax = function(price) {
return price - rivets.formatters.var_net(price);
}
</script>