首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Node.js --如何在vash模板中包含一个文件?

Node.js --如何在vash模板中包含一个文件?
EN

Stack Overflow用户
提问于 2015-09-21 18:52:27
回答 1查看 879关注 0票数 0

我有一个使用Express和Vash的Node.js应用程序。我的布局是这样的:

layout.vash

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html>
@{
  model.items = MyClass.LoadItems();
}
  <head>
  </head>
  <body>
  </body>
</html>

MyClass是一个定义如下的ES6类:

MyClass.js

代码语言:javascript
运行
复制
'use strict';

class MyClass {
  constructor() {
  }

  static LoadItems() {
    var items = [];
    // ...
    return items;
  }
}

我面临的挑战是,当我包含model.items = MyClass.LoadItems();行时,我的视图将不会加载。如果我注释掉这一行,视图将像预期的那样加载。我怀疑由于该行使用ES6,所以存在一些编译问题。当我包括这一行时,我会在控制台窗口中看到以下错误:

代码语言:javascript
运行
复制
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 

是否有办法使MyClasslayout.vash中可访问?如果是这样的话,是怎么做的?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-21 20:43:31

一般来说,在express (与大多数视图引擎一样)中,您在调用render函数时传递模型中所需的任何属性。您可以在模型对象中传递您想要的任何内容,包括一个类(它最终是一个函数--因此是一个对象):

代码语言:javascript
运行
复制
app.get('/', function (req, res) {
  res.render('layout', { MyClass });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32702572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档