5

ejsでexpress(node.jsのWebフレームワーク)を使用しています。次に、 ejs githubページで説明されているように、独自のフィルターを作成したいと思います。

To add a filter simply add a method to the .filters object:

ejs.filters.last = function(obj) {
  return obj[obj.length - 1];
};

質問:そのejsオブジェクトにアクセスするにはどうすればよいですか?私はapp.jsで(素朴に)試しました:

ejs.filters.myfilter = function (obj) {
  ....
}

これは私にエラーを与えます:

ReferenceError: ejs is not defined
4

1 に答える 1

10

アプリケーションでejsを要求し、それにカスタムフィルターを設定する必要があります。これは、Expressアプリケーションで表示されます。また、ビューでejsフィルターを使用する方法にも注意してください<%=: data_to_be_filtered | your_filter %>

アプリケーション例:

app.js

var app, express = require('express'), ejs = require('ejs');

ejs.filters.my_custom_filter = function(ary) {
  return ary[ary.length - 1];
};

app = express.createServer();

app.configure(function() {
  app.set('view options', { layout: false });
  app.set('view engine', 'ejs');
});

app.get('/', function(req, res) {
  res.render('index', { data: [1, 2, 3, 4, 5] });
});

app.listen(8080);
console.log('Server started on port 8080');

index.ejs(/ viewsにあります)

<%=: data | my_custom_filter %>

コードをgithubから直接ダウンロードします:http://github.com/alessioalex/ejs_filters

詳細情報のチェックアウト:https ://github.com/visionmedia/ejs

于 2012-01-09T19:47:24.590 に答える