流星:如何使用空格键来应用不同的CSS元素
Meteor: How can I use Spacebars to apply different CSS elements?
我想为我的卡片标题使用不同的颜色。我以为我可以使用它Spacebars
独特的{{if
条件,但似乎它仅适用于布尔变量,而不适用于检查字符串的条件:
这是我的代码:
{{#if type='ToDo'}}
<div class="paper-card-header teal-header">
{{else}}
{{#if type='Info'}}
<div class="paper-card-header orange-header">
{{else}}
<div class="paper-card-header pink-header">
{{/if}}
{{/if}}
我想将 teal-header
的 CSS 元素用于type==='ToDo'
的条件,orange-header
用于type==='Info' and
粉红色标头for every other value of
类型的条件。
我怎样才能做到这一点,还是不可能在流星中做到这一点?
你只需要一个帮助程序来返回相应的类:
Template.YOURTEMPLATE.helpers({
headerClass: function () {
var class = {
'ToDo': 'teal-header',
'Info': 'orange-header'
}[this.type]
return class || 'pink-header'
}
})
然后在模板中:
<div class="paper-card-header {{headerClass}}"></div>
请注意,您也可以将空格键子表达式与下面这样的等号助手一起使用,但我认为对于存在多种可能性的情况,这不是正确的选择:
Template.registerHelper('equal', (x, y) => x === y)
<div class="paper-card-header {{#if (equal type "Info")}}orange-header{{/if}}"></div>
无论如何,拥有一个一般的平等助手通常非常有用。
你可以实现一个帮助程序并将其放在"class"属性中
<div class="paper-card-header {{getColorByType}}-header">
在模板的 javascript 中,类似
Template.myTemplate.helpers({
getColorByType(){
var type = ... // get your type from the template instance
if (type === 'ToDo'){
return 'teal';
} else if (type === 'Info'){
return 'orange';
}
return 'teal';
}
}
根据 @richsilv 和 @mati-o 的答案,我按照他们俩的建议使用了模板助手。但是我选择了我个人认为更容易阅读的代码(这也让我可以选择更多不同的颜色):
Template.puzzle.helpers({
headerColor: function () {
switch (this.type) {
case "ToDo":
return 'md-orange-header';
break;
case "Info":
return 'md-green-header';
break;
case "NewTG":
return 'md-teal-header';
break;
default:
return 'md-green-footer';
}
}
});
这个帮助程序在 html 代码中的用法是相同的,但为了完整起见,这里还有这段代码:
<div class="paper-card-header {{headerColor}}">
再次感谢两位帮助我!
相关文章:
- 宽度为100%的CSS元素位于视口之外
- 如何在jquery中从右、从左、从下移动css元素
- 什么'这段用javascript移动css元素的代码错了
- 使用javascript操作css元素,左短划线
- 何时在javascript中使用css元素/类选择器
- 重写HTML CSS元素
- 基于计算定义css元素
- I'我试图用一个按钮随意移动一个CSS元素,我试图使用偏移量,但onlick不起作用
- 影响 JavaScript 中的 CSS 元素
- 存储/检索 CSS 元素
- CSS 元素不会正确对齐
- css 元素和设置间隔错误
- 将 HTML/CSS 元素转换为可重用的 AngularJS 指令
- 相对于另一个 css 元素定位一个元素,而不编辑 html
- 如何对线条进行动画处理以跟踪移动的 CSS 元素
- 如何在 JavaScript 中定位特定的 CSS 元素
- 流星:如何使用空格键来应用不同的CSS元素
- Web 浏览器正在按字母顺序编译 css 元素
- 如何使用 css 元素从 java 添加 url 链接
- 如何通过 css 元素从 jquery 添加 url 链接