Вы можете назначить их в каком-то «глобальном» файле, который включен в каждую страницу (например, smarty.php
- как я видел выше) или какой-либо другой include-файл. Вы даже можете создать новый файл, такой как globals.php
, и сделать $smarty->assign()
там (для более логичной юзабилити).
Но, очевидно, вы должны создать новый объект $smarty
перед назначением всех vars.
Вы должны использовать обещания, чтобы контролировать свой код. Попробуйте следующий код и сообщите мне, если есть ошибка.
Recipe.find().then(doc3 => {
data = doc3;
for (var i = 0; i < data.length; i++) {
data[i]['categories'].forEach((item, index) => {
Recipecat.findOne({_id: item}).then(result => {
item = result.name;
catsObjectId.push(item);
});
})
}
console.log(catsObjectId);
})
.catch(err => {
console.log(err);
});
Вы отправляете пустой массив каждый раз, когда он проходит цикл for. Попробуйте удалить эту строку.
catsObjectId.push([]);