Активный переход не работает для частичного обновления

ОБНОВЛЕНИЕ: вот скрипка. Оно работает немного лучше, чем мое собственное настоящее приложение, но все же указывает на потенциальную ошибку (или мое недоразумение). Обратите внимание, что переход "заключительный" не работает.

http://jsfiddle.net/k4a81fza/1/

Оригинал:

Это часть, которую я использую внутри родительского Ractive:

<script id="session_tpl" type="text/ractive">
  <div>
    <a href="#" on-tap="showDetail">
      {{#if p.project !== null}}
        <p intro-outro="fly">
          {{project}}
        </p>
      {{/if}}
    </a>
  </div>
</script>

Вот как я пытаюсь затем обновить данные (которые изменяются с помощью другого метода, который представляет собой подробное представление):

daysRac.set('days[1].sessions[2].project', null);

Тег <p> в шаблоне успешно исчезает, но без перехода. Я пробовал другие переходы и настраивал длительность и задержку, но всегда просто мгновенно удалялся.

В идеале мне нужны разные переходы между финалами и вступлениями, которых, как я думал, можно добиться с помощью чего-то вроде этого:

daysRac.set(keypathToProject, null, function(){
  daysRac.set(keypathToProject, "The New Value");
});

Опять же, это работает для обновления значения проекта, отображаемого в <p>, но без переходов.

Есть ли способ добиться того, что мне нужно?


person Jed    schedule 19.09.2014    source источник
comment
Стандартный переход работает нормально: jsfiddle.net/1zpqshfa/1. Проверьте консоль, чтобы увидеть, нет ли сообщения о том, что переход не загружен. В противном случае, возможно, ссылки на данные или шаблоны не такие, как вы ожидали.   -  person martypdx    schedule 19.09.2014


Ответы (1)


Вероятно, это ошибка, я отправил проблему на GitHub.

Проблема в том, что Ractive обновляет {{description}} до null перед началом перехода. Он работает правильно, если вы не используете выражение, т.е. если вы измените {{#if description !== null}} на {{#if describtion}}.

person Martin Kolárik    schedule 27.09.2014
comment
Ах, хороший улов, Мартин. Использование чего-то другого, кроме проверки на null, должно решить эту проблему для меня. Спасибо! - person Jed; 28.09.2014