作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Shopify 中使用 Vue.js,我希望将对象从 Liquid 传递到 Vue 组件作为 Prop 。例如,如果我注册了 Vue 组件 product-tile,并且我想使用 Shopify's product object in Liquid并将其直接转换为 Vue 中的对象,我希望能够执行如下操作:
<product-tile product='{{ product | json }}'></product-tile>
请注意,这里的大括号是 Liquid 而不是 Vue,我使用的是 delimiters .我目前的解决方法是将我需要的数据放在隐藏的输入字段中,然后在安装组件后从 DOM 中提取这些数据,但是能够将 Liquid 直接传递到 Vue 组件将是一个更简洁的解决方案。
我在上面的代码中遇到了错误,因为 Vue 似乎不喜欢以这种方式将 JSON 字符串作为 prop 传入。具体报错是:
Template compilation error: Unquoted attribute value cannot contain U+0022 ("), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).
如果没有我当前的解决方法,是否还有其他方法可以实现此目的?
最佳答案
查看uicrooks/shopify-foundation-theme ,他们能够使用额外的过滤器使其工作。
<product-tile :product="{{ product | json | replace: '"', "'" }}" />
关于javascript - 如何将 JSON 字符串作为 Prop 传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65962238/
我是一名优秀的程序员,十分优秀!