Получение значения от мангуста в переднем конце с использованием шаблона Handlebar - PullRequest
0 голосов
/ 26 января 2019

Я видел похожие вопросы, но не смог их реализовать. Прости мою неадекватность Я пытаюсь использовать массив объектов в интерфейсе внутри тега сценария. Мой бэкэнд - это узел и база данных мангуст. Фронт-энд, я использовал шаблон руля с сырой JS. Мой код конца:

UnitType.find()
        .where({ type: type })
        .select("-_id")
        .exec()
        .then(doc=> {
        var unit_types = doc;
        res.render('single-unit', { 
           unit_types: unit_types,
        });
});

Front-End Я использовал подобные unit_types -

{{#each unit_types}}
<tr>
<td width="40%">{{this.name_plural}}</td>
<td width="60%">{{this.name_singular}}</td>
</tr>
{{/each}}

В теге сценария -

<script>
var unit_types = [{{unit_types}}] // [{{{unit_types}}}]
<script>

Я использую скрипт для манипулирования данными. Мои данные будут как -

[
  {name_singular:"foot",name_plural:"feet"},
  {name_singular:"yard",name_plural:"yards"},
  ..... // etc.
]

Который работает нормально. Проблема Я сталкиваюсь с двумя проблемами: одна, если я беру _id из запроса, это вызывает синтаксическую ошибку внутри <script>. Во-вторых, я использую функцию, чтобы сделать первую букву каждого свойства заглавными. Как это в конце -

var unittypes =doc.map(v => {
return {
    name_singular_up:  ucfirst(v.name_singular),
    name_singular: v.name_singular,
    name_plural_up:  ucfirst(v.name_plural),
    name_plural: v.name_plural,

}

Если я отправляю вот так, то снова внутри <script> снова выдается синтаксическая ошибка, показывая [Object object] в элементе chrome. Но данные в шаблоне работают правильно. Я нашел рабочий метод, используя ajax.get. Но я бы хотел сделать это без использования ajax. Что я здесь не так делаю? Заранее спасибо.

...