У меня есть приложение Node.js, которое использует Express и Vash. У меня есть макет, который выглядит следующим образом:Node.js - Как включить файл в шаблон vash?
layout.vash
<!DOCTYPE html>
<html>
@{
model.items = MyClass.LoadItems();
}
<head>
</head>
<body>
</body>
</html>
MyClass
является класс ES6 определен так:
MyClass.js
'use strict';
class MyClass {
constructor() {
}
static LoadItems() {
var items = [];
// ...
return items;
}
}
Моя проблема заключается в том, что мой взгляд не будет загружаться, когда я включу model.items = MyClass.LoadItems();
l ине. Если я прокомментирую строку, представление загрузится, как ожидалось. Я подозреваю, что, поскольку линия использует ES6, есть проблема с компиляцией. Когда я включаю линию, я вижу следующее сообщение об ошибке в окне консоли:
ERROR:
ReferenceError: Problem while rendering template at line 2, character 16.
Original message: Problem while rendering template at line 2, character 16.
Original message: MyClass is not defined.
Context:
1 | <!DOCTYPE html>
> 2 | <html lang="en">
3 | @{
4 | model.items = MyClass.LoadItems();
5 | var navItemsB = [];
.
Context:
1 | @html.extend('layout', function(model){
> 2 | @html.block('content', function(model){
3 | <div>
4 | <div
Есть ли способ сделать MyClass
доступные в пределах layout.vash
? Если да, то как?
Спасибо!
Первое, что я заметил, это должно быть 'новый MyClass() LoadItems() ; ', но вы все еще чего-то не замечаете. Я не знаком с vash, но похоже, что вам нужно как-то включить MyClass.js. – tcigrand
@AnotherDev. Я согласен, что мне нужно включить MyClass. Хотя я не уверен. Как будто я не могу использовать 'require' в Vash. Что кажется странным. Мне не нужно «новое», хотя функция статически видима. – user70192
Gotcha, как вы это делаете с es5? – tcigrand