3

したがって、スクリプトタグを使用して、このスクリプトをここに単純に追加しました。

var env = new nunjucks.Environment();

// async filters must be known at compile-time
env.addFilter('asyncFilter', function(val, cb) {
  // do something
  return "test"
}, true);

私のテンプレートでは、

{{ item.opendays | asyncFilter }}

Chrome コンソールに表示されるエラー:

Uncaught Template render error: (node/yummy/www/js/templates/restaurant.overview.html)
  Error: filter not found: asyncFilter 

おそらく本当に単純なことですが、私はそれを機能させることができません。

レンダリングに使用するコードは次のとおりです。

 items = nunjucks.render(Config.rootPath + 'js/templates/restaurant.overview.html', {items: data});
4

2 に答える 2

16

configureを使用すると、フィルターを追加する必要がある環境が返されます。

var env = nunjucks.configure('views');

// async filters must be known at compile-time
env.addFilter('asyncFilter', function(val, cb) {
  // do something
  return "test"
}, true);

その後、引き続き使用できますnunjucks.render()

于 2015-06-18T16:13:15.363 に答える
5

You are not using the environment you just created and set up.

items = env.render(Config.rootPath + 'js/templates/restaurant.overview.html', {
  items: data
});

That is, env.render() instead of nunjucks.render().

于 2014-01-13T22:31:56.750 に答える