node.js - 自动向 Express 部分 View 提供数据

标签 node.js express partials

我正在写一个Express 4应用程序,目前正在使用 twig.js作为 View 引擎,因为我觉得它很舒服,尽管我可以被说服改变这个引擎。

我已经使用 PHP/Laravel 进行了大量开发,并且已经习惯了他们所说的 view composers 。 。使用这些我可以为特定 View 编写一个编写器,无论它是主页面 View 、其他 View 扩展的布局还是部分其他 View 包含的布局。编写器执行任何必要的逻辑来准备 View 所需的任何数据,然后将其附加到 View 的上下文,以便在渲染期间可用。

例如,我可能有一个显示当前用户状态的部分,所以如果他们注销了,它可能只有一个登录按钮,如果他们登录了,它会有他们的图标,用户名,以及让他们注销的菜单等。相应的编写器将检查用户是否登录,如果登录,则将有关用户的相关数据附加到 View 的上下文中。那么哪个页面包含这个部分并不重要;数据将始终可用,而无需我记住将该特定数据添加到传递给页面主视图的上下文中。

Express 中有类似的东西吗?或者它取决于我使用的模板引擎?

最佳答案

目前,使用 res.render() 渲染的 View 需要在每个 res.render() 上传递它们的数据。如果 View 使用需要某些数据点的部分模板,则使用该模板的 View 将需要通过 res.render() 传入该值。简而言之,无论可能共享的部分模板是否需要数据点,您始终需要传入数据。使用 View 引擎时,不会自动向 View 提供任何内容。

关于node.js - 自动向 Express 部分 View 提供数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35612168/

相关文章:

javascript - Mongoose 一对多,如何获取类别的字段值

parameters - Laravel 4. 将参数传递给部分

ruby-on-rails - 根据部分文件查找网页的url

node.js - 在 Node 中连接失败后重用套接字

javascript - Mongoose JS findOne 总是返回 null

javascript - gm node.js 无法调整大文件大小的图像

angularjs - 具有多个服务器布局的 meanjs 应用程序

ruby-on-rails-4 - 如何在另一个 View 中渲染一个 View (rails 4)

node.js - 我应该为graphql和sequelize中的所有关系定义一对多关联吗?

node.js - 为什么导入 bcrypt 会导致 "Cannot find module napi-v3/bcrypt_lib.node"错误?