使用template模板引擎时,写时间的过滤器函数的时候,发现function的形参中只可以传date,写其他的形参名字都不可以,d大写都不可以,请问这是为什么呢,按理来说这个形参只是负责接收的,应该任意形参名都可以啊,求指教。
<!-- 定义模板 -->
<script type="text/html" id="niubi">
<h3>{{regTime | dateFormat}}</h3>
</script>
<script>
template.defaults.imports.dateFormat = function (date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h = h < 10 ? ('0' + h) : h;
var minute = date.getMinutes();
minute = minute < 10 ? ('0' + minute) : minute;
var second = date.getSeconds();
second = second < 10 ? ('0' + second) : second;
return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
}
//定义一个需要渲染的数据对象
var data = { name: 'zs', age: 20, test: '<h3>测试原文输出</h3>', flag: 1, hobby: ['吃饭', '睡觉', '打豆豆'], regTime: new Date() }
//调用template函数
var htmlStr = template('niubi', data)
console.log(htmlStr);
//渲染HTML结构
$('#rongqi').html(htmlStr)
</script>
报如下错误:
RuntimeError: date is not defined
不是该这样用吗? {{ dateFormat(regTime, 'yyyy-mm-dd')}}