Ractive转换不适用于部分更新

时间:2014-09-19 16:52:41

标签: ractivejs

更新: 这是一个小提琴。它比我自己的真实应用程序好一点,但仍然突出了潜在的错误(或我的误解)。请注意,“outro”转换不起作用。

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>

以下是我尝试更新数据的方式(从代表详细视图的不同ractive更改):

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

模板中的<p>标记成功消失,但没有转换。我已经尝试过其他过渡和调整持续时间和延迟,但它总是被立即删除。

理想情况下,我想要不同的outro和intro过渡,我认为我可以用这样的东西来实现:

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

同样,这可以更新<p>中显示的项目值,但没有过渡。

有没有办法完成我追求的目标?

1 个答案:

答案 0 :(得分:0)

这可能是一个错误,我提交了issue on GitHub

问题是,在转换开始之前,Ractive会将{{description}}更新为null。如果您不使用表达式,即{{#if description !== null}}更改为{{#if describtion}},则works correctly