javascript - shopify上的金钱过滤器不适用于脚本
问题描述
你好。所以出于某种原因,我试图减去我的变体价格。它正在工作,但货币过滤器不起作用。
console.log ( {{ product.variants[0].price | minus: product.variants[1].price }} );
80604
上面的数字是我能够得到的。添加 | 对代码的金钱过滤器不返回任何内容。例如:
console.log ( {{ product.variants[0].price | minus: product.variants[1].price | money }} );
请问我有什么解决方法吗?谢谢!
解决方案
只需将money
过滤器添加到该命令中,就会得到如下所示的渲染代码:
console.log( $806.04 )
这不是合法的 Javascript,您可能会在控制台中看到与此行相关的错误。
幸运的是,Shopify 有json
过滤器,它不仅仅用于将 Liquid 对象转换为 JavaScript 对象表示法。通过此过滤器传递的任何Liquid 变量都将转换为 javascript 合法形式。这意味着文本将用引号括起来,任何特殊字符将被正确转义,空白值将变为null
等等。我强烈建议开发人员json
在需要将变量从 Liquid 传递到 Javascript 时始终使用过滤器。
因此,要修复您的代码,只需使用:
console.log ( {{ product.variants[0].price | minus: product.variants[1].price | money | json }} );
推荐阅读
- html - 保存 HTML 表格对象
- elasticsearch - ElasticSearch - 同时删除和索引(添加文档)。它会影响删除和/或索引性能吗?
- ms-access - 绘制简单图表时如何让 MS ACCESS 运行交互式查询
- keras - 如何创建没有内核的 tf.keras 层,即创建可以在 keras 模型定义中的任何位置使用的可训练变量?
- python-3.x - 使用子进程通过 cookie 获取文件的大小
- python - 我对不和谐机器人的 python 中的 message.content 有问题
- python - 任意选择使用带有即时客户端的 cx_Oracle 失败
- javascript - 在 Adobe Pro 中使用 javascript 重命名文件
- sql - SQL server 2000 内部错误 8624 在相同代码中运行了 10 年
- html - 父 div 是 flex,子 div 是具有 flex:1 的列。如何将右侧栏的内容推送到栏的右侧?