首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流星模板元素在(Re)呈现过程中失去样式

问流星模板元素在(Re)呈现过程中失去样式
EN

Stack Overflow用户
提问于 2014-02-22 11:25:51
回答 1查看 62关注 0票数 0

我有一个模板,它每秒钟更新一次文本。

我也有一个按钮,当点击它的风格,以显示一个禁用的按钮-这工作良好,但一旦模板重新呈现,由于上述条件,然后按钮恢复到原来的风格。这就好像整个模板都是从头开始呈现的(template.render每秒钟被触发一次)。

这是正常的吗?是否需要通过反应性{{ via样式}}类型机制来控制样式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-22 12:08:57

是的,典型的方法是通过由模板助手函数设置的class来设置样式。要禁用按钮/输入元素,只需使用disabled属性而不是class

代码语言:javascript
复制
<button type="button" {{#if buttonDisabled}}disabled{{/if}}>Button Text</button>

或

代码语言:javascript
复制
<input type="button" value="Button Text" {{#if buttonDisabled}}disabled{{/if}} />

然后做:

代码语言:javascript
复制
Template.yourFormTemplate.buttonDisabled = function() {
  // return true or false depending on if the button should be disabled
};

问题是,当Meteor重新呈现您的模板时,您设置的元素实际上被替换为一个新的元素。请注意,Meteor团队目前正在开发一个新的模板引擎,该引擎可以在更细粒度的级别上工作,因此元素不一定会像这样被替换。您可以使用以下命令使用新模板引擎的预览版本尝试当前代码:

代码语言:javascript
复制
meteor --release shark-1-29-2014-e

或

代码语言:javascript
复制
mrt --release shark-1-29-2014-e

但是,仍然建议通过使用模板助手设置的class属性对元素进行样式设置。这是一种更具声明性的、模板驱动的方法,它更适合于"Meteor方式“来做事情,而不是直接从JavaScript中设置样式的强制方法。它还有助于分离关注点,允许您的CSS控制实际样式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21953622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档