json - 无法在 Pug 文件中使用 Imigx 参数将字符串分配为 JSON 输入
问题描述
我已将工作 HTML 代码转换为使用Imgix.js 库中的参数的Pug ,但 Pug 版本有错误。我已经尝试了这两种方法(注意 上的反引号): ix-params
img(ix-path="image.jpg", ix-params='{"w": 100}')
img(ix-path="image.jpg", ix-params={"w": 100})
但是得到一个Uncaught SyntaxError: Unexpected end of JSON input
控制台错误。似乎ix-params
不允许将字符串分配为 JSON 输入?
我可以通过将 设置ix-params
为变量来使其工作,但这对于生产来说是不可行的。
- var ix_params = { "w": 100 }
img(ix-path="image.jpg", ix_params)
解决方案
根据 imgix 文档,您需要输出如下所示的内容:
<img
ix-path="unsplash/hotairballoon.jpg"
ix-params='{
"w": 300,
"h": 500,
"fit": "crop",
"crop": "right"
}'
alt="A hot air balloon on a sunny day"
>
您尝试执行此操作的第二种方法是导致错误的原因,因为 pug 在等号之后需要一个字符串或 JavaScript 表达式,并且您正在向它发送一个原始 JSON 对象。
所以让我们试试这个:
img(ix-path="unsplash/hotairballoon.jpg" ix-params='{"w": 300, "h": 500, "fit": "crop", "crop": "right"}' alt="A hot air balloon on a sunny day")
产生您显然不想要的输出:
<img ix-path="unsplash/hotairballoon.jpg" ix-params="{"w": 300, "h": 500, "fit": "crop", "crop": "right"}" alt="A hot air balloon on a sunny day"/>
获取未转义属性的方法隐藏在文档底部附近,但您需要以 bang/ 开头该属性!
并用波浪号 ( ` ) 括起该属性:
这个哈巴狗声明:
img(ix-path="unsplash/hotairballoon.jpg" ix-params!= `{"w": 300, "h": 500, "fit": "crop", "crop": "right"}` alt="A hot air balloon on a sunny day")
将其输出到接近但不完全的文档中:
<img ix-path="unsplash/hotairballoon.jpg" ix-params="{"w": 300, "h": 500, "fit": "crop", "crop": "right"}" alt="A hot air balloon on a sunny day"/>
切换双引号和单引号应该可以工作:
img(ix-path="unsplash/hotairballoon.jpg" ix-params!= "{'w': 300, 'h': 500, 'fit': 'crop', 'crop': 'right'}" alt="A hot air balloon on a sunny day")
产生这个:
<img ix-path="unsplash/hotairballoon.jpg" ix-params="{'w': 300, 'h': 500, 'fit': 'crop', 'crop': 'right'}" alt="A hot air balloon on a sunny day"/>
我个人宁愿在外部使用单引号,在内部使用双引号,但不知道如何做到这一点。不过,这应该可以工作,因为它是一个有效的 JavaScript 对象。
推荐阅读
- django - 在 Docker 容器中安装特定版本的 GDAL?
- twitter-bootstrap - 如何将 is-invalid 的 sass 样式引用到自定义类中?
- android-room - 如何查询Room中的条目数
- javascript - 更改边框颜色取决于值
- python - Jupyter:为什么第二个命令会阻止第一个命令工作?
- loops - 有没有办法在 DB2 中添加一个 while 循环?
- javascript - 如何使用对象的括号表示法和属性名称的字符串向对象添加属性?
- python - 带单引号且不带转义字符的 JSON 对象
- node.js - MySQL 查询不会超过承诺链中的某个点
- regex - 301 重定向到 URL 中带有 # 的域