在 Polymer 1.0 模板中切换 CSS class?
Toggle CSS class in Polymer 1.0 template?
根据布尔条件切换 Polymer 1.0 模板中元素的 CSS class 的最正确方法是什么?
<style>
.employee{
...
}
.employee-selected{
...
}
</style>
<template is="{{dom-repeat}}" items="{{employees}}">
<template is="{{dom-if}}" if="{{!item.isSelected}}">
<div class="employe">{{item.name}}</div>
</template>
<template is="{{dom-if}}" if="{{item.isSelected}}">
<div class="employee employee-selected">{{item.name}}</div>
</template>
</template>
在 Polymer 1.0 中有更好的方法吗?
(没有在 JavaScript 中使用 css class 名称)
大概是这样的?
<style>
.employee{
...
}
.employee[data-selected]{
...
}
</style>
<template is="{{dom-repeat}}" items="{{employees}}">
<div class="employee"
data-selected$="{{item.isSelected}}">{{item.name}}</div>
</template>
您在使用该属性选择器方面走在了正确的轨道上,但是 data-
前缀不是必需的,并且可能会意外地与 HTML5 数据属性系统交互。你可以逃脱 selected
:
<style>
.employee{
...
}
.employee[selected]{
...
}
</style>
<template is="dom-repeat" items="[[employees]]">
<div class="employee"
selected$="{{item.isSelected}}">[[item.name]]</div>
</template>
或者,如果您真的想使用 类:
<style>
.employee{
...
}
.employee.selected{
...
}
</style>
<template is="dom-repeat" items="[[employees]]">
<div class$="{{_computeEmployeeSelected(item)}}">[[item.name]]</div>
</template>
<script>
Polymer({
_computeEmployeeSelected: function(item) {
return 'employee '+(item.isSelected ? 'selected' : '');
}
});
</script>
根据布尔条件切换 Polymer 1.0 模板中元素的 CSS class 的最正确方法是什么?
<style>
.employee{
...
}
.employee-selected{
...
}
</style>
<template is="{{dom-repeat}}" items="{{employees}}">
<template is="{{dom-if}}" if="{{!item.isSelected}}">
<div class="employe">{{item.name}}</div>
</template>
<template is="{{dom-if}}" if="{{item.isSelected}}">
<div class="employee employee-selected">{{item.name}}</div>
</template>
</template>
在 Polymer 1.0 中有更好的方法吗?
(没有在 JavaScript 中使用 css class 名称)
大概是这样的?
<style>
.employee{
...
}
.employee[data-selected]{
...
}
</style>
<template is="{{dom-repeat}}" items="{{employees}}">
<div class="employee"
data-selected$="{{item.isSelected}}">{{item.name}}</div>
</template>
您在使用该属性选择器方面走在了正确的轨道上,但是 data-
前缀不是必需的,并且可能会意外地与 HTML5 数据属性系统交互。你可以逃脱 selected
:
<style>
.employee{
...
}
.employee[selected]{
...
}
</style>
<template is="dom-repeat" items="[[employees]]">
<div class="employee"
selected$="{{item.isSelected}}">[[item.name]]</div>
</template>
或者,如果您真的想使用 类:
<style>
.employee{
...
}
.employee.selected{
...
}
</style>
<template is="dom-repeat" items="[[employees]]">
<div class$="{{_computeEmployeeSelected(item)}}">[[item.name]]</div>
</template>
<script>
Polymer({
_computeEmployeeSelected: function(item) {
return 'employee '+(item.isSelected ? 'selected' : '');
}
});
</script>