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

您没有使用刚刚创建和设置的环境。

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

也就是说,env.render()而不是nunjucks.render().

于 2014-01-13T22:31:56.750 回答