开发者问题收集

Shopify 上的 Money 过滤器无法在脚本上运行

2020-10-09
1376

嗨。出于某种原因,我试图减去我的变体价格。它有效,但货币过滤器无效。

console.log ( {{ product.variants[0].price | minus: product.variants[1].price }} );

80604

上面的数字是我能得到的数字。将 | 货币过滤器添加到代码中不会返回任何内容。例如:

console.log ( {{ product.variants[0].price | minus: product.variants[1].price | money }} );

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

1个回答

只需将 money 过滤器添加到该命令,就会得到如下所示的渲染代码:

console.log( $806.04 )

这不是合法的 Javascript,您可能会在控制台中看到与此行相关的错误。

幸运的是,Shopify 有 json 过滤器,它不仅可以将 Liquid 对象转换为 JavaScript 对象表示法。 任何 通过此过滤器传递的 Liquid 变量都将转换为合法的 javascript 形式。这意味着文本将被括在引号中,任何特殊字符都将被正确转义,空白值将变为 null ,等等。我强烈建议开发人员在需要将变量从 Liquid 传递到 Javascript 时始终使用 json 过滤器。

因此,要修复您的代码,只需使用:

console.log ( {{ product.variants[0].price | minus: product.variants[1].price | money | json }} );
Dave B
2020-10-09