当前位置: 首页 > 知识库问答 >
问题:

无法设置ejs中未定义的属性“round”

樊奇思
2023-03-14
ejs.filters.round = function(number, decimalPlaces) {
               ^ 
 Cannot set property 'round' of undefined

我有这个代码:

 var ejs = require('ejs');
 var template = '<%=: price * 1.145 | round:2 %>';
 var context = {price: 21};


ejs.filters.round = function(number, decimalPlaces) {

number = isNaN(number) ? 0 : number;
decimalPlaces = !decimalPlaces ? 0 : decimalPlaces;

var multiple = Math.pow(10, decimalPlaces);
return Math.round(number * multiple) / multiple;
};

console.log(ejs.render(template, context));

谁能告诉我我错在哪里?

共有1个答案

米修平
2023-03-14

可能您使用的是版本2。

EJS的第2版对这个版本做了一些突破性的改变(特别是删除了过滤器特性)。来源

您可以切换到version2之前的版本,也可以为filter创建自己的对象,然后扩展该对象以包含自己定义的筛选器

 类似资料:
  • 问题内容: 我的代码: 我收到以下错误: Uncaught TypeError:无法设置未定义的属性“ greeting”。 我正在尝试做类似于关联数组的操作。为什么这不起作用? 问题答案: 您永远不会设置任何值。 因此,计算为,您无法在上设置属性。 如果您添加正确,事情应该会按预期进行。 另外,您可以使用对象初始化程序: 或者,您可以在匿名函数实例中设置的所有属性: 如果您在支持ES2015功能

  • 当我使用set JavaScript时,我在构建portfolio页面时遇到了一个错误。目前正在使用Bootstrap,React Native和Material Ui 下面是我使用Set的代码示例:{[...new Set(resumedate.projects.map((item)=>item.tag))].map((tag)=>( ))} 保存后,我发现了这个错误:Module not fo

  • 我确实从NYTimes API中获取了数据,并在控制台上记录了它们。我的初始状态是{searchresponse:null},然后设置state the response this.setstate=({searchresponse:response.data});并将其传递给另一个名为ListView_Component的组件。在该组件中,我处理prop的null值。 但是来自API的响应没有推

  • 问题内容: 在ejs模板中检查未定义属性的最佳方法是什么? (我正在使用TJ Holowaychuk 的node.js包) 例: 我希望这会导致“ foo undefined”。它确实会引发 foo undefined 错误。 我知道这不应该成为问题,因为这是测试中的预期行为。有避免这种情况的简便方法吗? 我发现的唯一解决方案是使用该方法。 这不会引发任何错误。 有没有更好的方法来保持模板清洁?还

  • 问题内容: 我正在尝试在使用包中设置路由,并且遇到以下问题 : 链接到图像:https : //postimg.org/image/v0twphnc7/ 我在中使用的代码 我设法确定的问题是,当我将投资组合定义为简单组件时,它可以工作。 但是,当我从Component扩展它时,就会出现错误: 您能解释一下“正常”组件和类组件之间的可能区别以及为什么出现以下错误。 问题答案: 假设您正在导入的正确,

  • 我在努力什么? 尝试在状态中设置输入类型文本的值 到目前为止我搜索了什么? 组件