Привязки свойств комплекса Ember

Я использую довольно сложные привязки свойств, чтобы иметь возможность изменять день, месяц или год даты рождения пользователя. Наличие attr birthDate типа date для пользователя и трех свойств для каждой части даты. Я использую moment.js, чтобы упростить манипуляции с датой.

Попробовав уменьшенную витрину на jsfiddle, вы увидите, что если вы измените год или день, месяц будет всегда увеличивается на 1. Я не могу сказать, что происходит. Просто так: при установке новой даты значение правильное и будет изменено позже. Есть ли проблема с атрибутами ember-data date и некоторым форматированием?

Опять же: вот jsfiddle, написанный на CoffeeScript.

Заранее спасибо!


person pex    schedule 23.11.2012    source источник


Ответы (1)


Я посмотрел на ваш код, и мне показалось, что он должен работать нормально, чем больше я проходил через него, тем больше меня раздражало то, что я не мог обнаружить проблему ... оказывается, это метод .month () из Moment.js ... из документации:

«Преобразует исходный момент, изменяя месяц. Принимает числа от 0 до 11»

Довольно тупой, да? В любом случае измените свой setMonth, чтобы вычесть 1 из значения, когда вы используете .month ()

setMonth: (property, value) ->
  @set property, moment(@get(property)).month(value-1).format()
  return value
person chrixian    schedule 24.11.2012
comment
Вау - какого хрена. Это скорее похоже на ошибку в moment.js, но вы правы - это задокументировано таким образом, и это работает :) Спасибо за ваши усилия! - person pex; 25.11.2012