Я хочу создать приложение Spender для добавления и проверки расходов. Я использую Handlebars как Javascript Template Engine with Parcel. У меня есть 3 индекса "страниц". html, категория. html и расходы. html, также у меня есть один (root) div с именем: "js -app", и мне нужно сделать все html содержание в этом единственном div. Также мне нужно перемещаться между этими страницами, и эта часть не будет работать должным образом или я что-то пропустил?
import Navigo from 'navigo'
import Handlebars from 'handlebars'
import indexHtml from './views/partials/index.html'
import categoryHtml from './views/partials/category.html'
import expensesHtml from './views/partials/expenses.html'
let root = null;
let useHash = true;
let router = new Navigo(root, useHash);
router
.on('/', function () {
let indexTemplate = Handlebars.compile(indexHtml)
let indexTemplateRendered = indexTemplate({
fullname: 'tets',
allCategoriesCost: 2211
})
//console.log(indexHtml)
document.querySelector('.js-app').innerHTML = indexTemplateRendered
})
.on('/categories/:id', ({ id }) => {
console.log(id)
let categoryTemplate = Handlebars.compile(categoryHtml)
let categoryTemplateRendered = categoryTemplate({
category: {
id: 1,
totalCost: 555
}
})
//console.log(categoryHtml)
document.querySelector('.js-app').innerHTML = categoryTemplateRendered
})
.on('/expenses/add/:category', ({ category }) => {//ovde treba da se napravi prolaz za do rute za kategoriju, kad se klikne na neku kategoriju
let expensesTemplate = Handlebars.compile(expensesHtml)
let expensesTemplateRendered = expensesTemplate({
categories: {
category: "Car"
}
})
console.log(expensesHtml)
document.querySelector('.js-app').innerHTML = expensesTemplateRendered
})
.resolve();
пакет. json
{
"name": "spender",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"express": "^4.17.1",
"ha": "0.0.17",
"handlebars": "^4.5.3",
"navigo": "^7.1.2",
"views": "^1.0.2"
}
}