首页 > 解决方案 > 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 }} );

 

请问我有什么解决方法吗?谢谢!

标签: javascriptshopify

解决方案


只需将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 }} );

推荐阅读