【问题标题】:Render data from/to Javascript/jQuery从/向 Javascript/jQuery 渲染数据
【发布时间】:2015-11-16 05:10:25
【问题描述】:

目标是将 _data/users.json 中定义的 json 数据渲染为 javascript 代码。

我在 [根文件夹]/_data/users.json 中有一个 json 文件

{
  "users"
  [{
    "username":"test",
    "password":"test"
  }]
}

在我的 jquery 中,我已经尝试过:

...
{% for user in site.data.users %}
  console.log({{ user.username }});
{% endfor %}
...

返回给我一个:

Uncaught SyntaxError : Unexpected token %

谁有想法?

【问题讨论】:

  • 那些液体标签看起来不错,您还有更多代码要显示吗?通常文件中的某处缺少 {、} 或 %。
  • 嗨,Scymex,其实jquery中包含了液体标签,代码是这样的:
  • $(document).ready(function(){ {% for user in site.data.users %} console.log({{ user.username }}); {% endfor %} } );
  • 现在,我只想显示来自javascript的数据(在_data文件夹中)以实现检查操作。

标签: javascript jquery jekyll


【解决方案1】:

只有在你的 js 文件中添加空的前端标记时,你的液体标签才会呈现。

js/script.js

---
---

{% for user in site.data.users %}
  console.log({{ user.username }});
{% endfor %}

编辑:我刚刚明白了!通过https://github.com/cui-bo/cui-bo.github.io阅读您的代码

您只想从您的 javascript 中调用您的 _data/user.json 文件,但您不能,因为您没有生成 _site/_data 文件夹。

这是因为默认情况下不会生成带下划线或带点的文件和文件夹,除非您将它们放在_config.yml 中的include 数组中。例如:

include:
  - _data
  - ....

然后您可以使用常规的 ajax 调用来调用 _site/_data/user.json

Note: 你的认证方法远非安全。

【讨论】:

  • 感谢大卫的回复!我这样做了(以下代码),但它不起作用。 ` --- --- $(document).ready(function(){ {% for user in site.data.users %} console.log({{ user.username }}); {% endfor %} }) ; ` 错误是:Uncaught ReferenceError: jQuery is not defined。有什么想法吗?
  • 或者我还遗漏了什么? @大卫
  • Google 是你的朋友:你的 jquery 文件必须在使用 jquery 的代码之前声明。
  • 您的 js 文件是否包含所需的数据?你真的不需要 jquery 来做一个 console.log。只需将您的脚本保留在您的问题中即可。
  • 其实使用_data文件夹和jquery查看用户名和密码的目的是为了不让密码明文显示出来。
猜你喜欢
  • 2011-12-31
  • 1970-01-01
  • 2017-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-18
  • 1970-01-01
  • 2018-08-15
相关资源
最近更新 更多