0

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

4

1 回答 1

0

您可以使用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

于 2021-10-20T13:54:20.357 回答