2013-01-11 45 views
3

当流星通过模板助手触发时,似乎跳过了CSS转换。 有没有办法解决这个问题?带有CSS转换的流星模板

例子:

<template name="example-template"> 
    <div class="example {{myhelper}}"></div> 
</template> 

那么, “myhelper” 会得到分配,通过模板帮手,触发一个CSS转换的类名。但是,由于某种原因,这个班被适用,但是没有过渡。我认为这与模板数据源更改时Meteor的自动呈现冲突,但我不知道如何绕过它(我想避免使用jquery)。

回答

2

流星还不支持渲染新模板后的CSS转换。原因是,当再次渲染模板example-template时,新的HTML仅以新的类名附加到DOM。由于DOM更改,转换不会发生。

最好的办法是结合一个loading类名使用rendered事件:

<template name="example-template"> 
    <div class="example loading"></div> 
</template> 

Template['example-template'].rendered = function() { 
    // remove the loading classname here, and have that trigger a transition 
} 
0

据说这是为了让以后新的流星UI的土地(见http://www.youtube.com/watch?v=pGQ-ax5cFnk)比较容易,但在那之前,你可以这样做与保存指令您的模板:

HTML:

<template name="example"> 
    <div id="example-div" class="example {{myhelper}}"></div> 
</template> 

JS:

Template.example.preserve(['#example-div']); 

有关更多信息,请参见http://docs.meteor.com/#template_preserve

+0

工程就像一个魅力!请仔细阅读文档:以最简单的形式,'preserve'方法应该传递一个选择器数组,每个选择器应该至多匹配一个element_。这种技术的好处是你的代码保持完全反应。 – remcoder

+0

'preserve'不再存在于最新的Meteor中。 –