0
我有一個使用Express和Vash的Node.js應用程序。我有一個佈局,看起來像這樣: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();
升時,我的觀點不會加載國家統計局。如果我註釋掉該行,視圖會按預期加載。我懷疑因爲這條線使用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
有沒有一種方法,使內layout.vash
MyClass
訪問?如果是這樣,怎麼樣?
謝謝!
我注意到的第一件事是它應該是'新MyClass的()LoadItems() ;',但你仍然錯過了一些東西。我不熟悉vash,但看起來你需要以某種方式包含'MyClass.js'。 – tcigrand
@AnotherDev。我同意我需要包含'MyClass'。我不知道如何。它就像我不能在Vash中使用'require'一樣。這看起來很奇怪。我不需要'新',因爲這個功能是靜態可見的。 – user70192
難過,你如何用es5做到這一點? – tcigrand