2012-11-23 187 views
1

我正在使用相当复杂的属性绑定,以便能够更改用户的生日的一天,一月或一年。对用户有一个类型date的attr birthDate,并且每个日期片段有三个属性。 我正在使用moment.js来简化日期操作。Ember复杂属性绑定

通过尝试reduced showcase on jsfiddle你会看到如果你改变年份或日期,月份总是增加1.我不能说发生了什么。只是:设置新的日期时,该值是正确的,并在以后更改。是否有一个与ember-data date属性和一些格式有关的问题?

再次:here's the jsfiddle - 写在CoffeeScript

在此先感谢!

回答

3

我看着你的代码,它看起来应该是正常工作,越是我越过它,我越恼怒,我无法发现问题......原来是.month()方法从Moment.js ... from the docs

“器变化了原有的时刻通过改变月份从0到11接受数字。”

很笨吧?在任何情况下改变你的setMonth减去1的值,当你使用.month()

setMonth: (property, value) -> 
    @set property, moment(@get(property)).month(value-1).format() 
    return value 
+0

哇 - 什么***。这感觉就像是一个在moment.js中的错误,但你是对的 - 它被记录为这样,它的作品:)谢谢你的努力! – pex