我尝试在aurelia中使用值转换器来使用数据绑定格式化我的日期,如下所示:https://jdanyow.github.io/aurelia-converters-sample/
为此我做了
npm install moment --save
并创建了一个date-format.js,其内容与链接中的内容相同,即
import moment from 'moment';
export class DateFormatValueConverter {
toView(value) {
return moment(value).format('M/D/YYYY h:mm:ss a');
}
}
当我这样做的时候
<require from="date-format"></require>
<div repeat.for="object of objects">
<span>${object.startDate | dateFormat} </span>
</div>
我收到#34;日期格式&#34;。
的脚本错误在momentjs网站上,它建议设置
"allowSyntheticDefaultImports": true
。
这也是设定的。我错过了什么?
更新
我已经检查了它被标记为副本的问题。我已经实现了建议的答案import * as moment from 'moment'
,并尝试了自动注入。它在viewmodel上导入时有效。但是当我在html端执行<require from='date-format'></require>
时,在上面的date-format.js中有一个值转换器之后,我得到下面的错误,因此我无法在我的视图中使用<span>${object.startDate | dateFormat}</span>
。
错误[app-router] 错误 stackCleaned :true columnNumber:17 fileName:&#34; http://localhost:9000/scripts/vendor-bundle.js&#34; lineNumber:4414 消息:&#34; \ _&#34; date-format \&#34; \ nhttp://requirejs.org/docs/errors.html#scripterror"的脚本错误; originalError:错误 气泡:假 cancelBubble:false 可取消的:假的 组成:假 currentTarget:null defaultPrevented:false eventPhase:0 explicitOriginalTarget: isTrusted:是的 originalTarget: 目标: timeStamp:361.99413968425523