使用layout.ejs动态或如何编辑视图-layout.js

Use layout.ejs dynamic or how to edit a view-layout.js

将包含在 layout.ejs 中的每个页面都有一个视图-pagename.js,因此我可以在其中使用动态内容。 如何将动态内容作为布局页面的默认功能?没有视图-layout.js

您可以使用 hooks,您可以从助手甚至模型中获取数据。检查路由助手规范:

https://sailsjs.com/documentation/concepts/extending-sails/hooks/hook-specification/routes

所以你可以使用sails generate hook some-hook-name指定一个钩子并使用它:

module.exports = function (sails) {
  return {

    initialize: function(cb) {
      sails.log.info('Hook some-hook-name loaded successfully');
    },

    routes: {
      before: {
        'GET /*': async function (req, res, next) {
          res.locals.pageTitle = await sails.helpers.getPageTitle(req);
          
          return next();
        }
      },
    }
  };
};

之后你可以在视图中使用它:

<%= pageTitle %>

还有一个将变量设置为局部变量的示例:

https://github.com/mikermcneil/ration/blob/master/api/hooks/custom/index.js#L240