Как получить доступ к именам полей объекта javascript в HTML, переданного из бэкэнда? - PullRequest
0 голосов
/ 16 января 2019

Пример:

var obj = {имя: боб, }

Я хочу получить доступ не к значению имени, то есть к бобу, а не к массиву, содержащему ключи obj, такие как [имя].

<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>

Здесь collection - это массив объектов, переданных из бэкэнда, то есть nodejs. Автор - это объект JavaScript. Я попытался получить желаемый результат, используя логику внутри тега скрипта. Но это ничего не печатает на веб-странице. Я также пытался расположить {{}} на разных позициях, но безрезультатно.

1 Ответ

0 голосов
/ 16 января 2019

обновление: я забыл, что вы используете swig-шаблон. Вот мое предложение:

//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 %}
...