我正在开发一个Sails.js应用程序,我想用自定义数据和函数扩展所有视图。
这样做的最佳方法是什么?
我尝试创建一个策略来执行此操作,但策略仅适用于具有控制器的路由。
答案 0 :(得分:1)
您可以使用自定义挂钩来实现此目的。
使用以下内容在指定路径api/hooks/viewsGlobals/index.js
创建文件:
module.exports = function viewsGlobals (sails) {
return {
routes: {
before: {
// This middleware will be executed for every request.
'*': function (req, res, next) {
// Using condition to filter out static file requests.
if (req.accepted.some(function (type) {
return type.value === 'text/html';
})) {
res.locals.someData = {
// Place your custom data here.
};
}
return next();
}
}
}
}
};
按以下路径创建文件:config/view-filters/toUpper.js
和以下内容:
// Replace this with templating engine that you use.
var swig = require('swig');
// Use the API of your templating engine to add custom filter.
swig.setFilter('toUpper', function (value) {
return value.toUpperCase();
});