首页 > 解决方案 > 如何访问从后端传入的 HTML 中 javascript 对象的字段名称?

问题描述

例子:

var obj={name:bob, }

我想访问的不是名称的值,即 bob,而是一个包含 obj 键的数组,例如 [name]。

<h1>{{ pagename|title }}</h1>
<ul>
{% for author in collections %}
  <li >
    {{ author.uno }}
    {{ author.subject }}
    <script>
        var array =  Object.keys(author).map((key) => key) ;  
        document.write('<p>' + array + '</p>');
      </script>


    {% for element in author %}
       <li >
             {{element  }} 


      </li>
    {% endfor %}


  </li>
{% endfor %}
</ul>

这里的集合是从后端传入的对象数组,即 nodejs。作者是一个 javascript 对象。我尝试使用脚本标签内的逻辑来获得所需的结果。但它没有在网页上打印任何内容。我还尝试将 {{}} 放在不同的位置,但没有取得丰硕的成果。

标签: htmlnode.jsexpressswig-template

解决方案


更新:我忘了你正在使用 swig-template。这是我的建议:

//backend :
const author = { /* author object */ };
author.keys = Object.keys(author).join(', ');
swig.renderFile('/path/to/template.html',{ author });

然后,把它放在template.htm中;

{{ author.subject }}
{{ author.keys }}
{% for element in author %}
   <li >
         {{element  }} 


  </li>
{% endfor %}

推荐阅读