根据返回的字符串 Ember 设置 CSS class
set CSS class depending on returned string with Ember
我仍在学习 ember,但我不知道如何根据某个控制器上返回的模型字符串来应用某些 CSS class。
官方文档 (http://emberjs.jsbin.com/yoqifiguva/1/edit?html,js,output) 只涵盖了你有布尔值的情况。
我没能将这些知识应用到我的案例中。
我有状态字符串字符串,如:"passed"、"failed"、"pendent" 和 "blocked",我想为每个状态应用不同的 css class .
关于如何实现的任何示例?
您可以使用bind-attr
,例如:
<ul>
{{#each item in model}}
<li {{bind-attr class='item.status'}}>An item with status: `{{item.status}}`</li>
{{/each}}
</ul>
产生以下 HTML:
<ul>
<li class="passed" data-bindattr-262="262">An item with status: `passed`</li>
<li class="failed" data-bindattr-265="265">An item with status: `failed`</li>
</ul>
对于collection:
[
YourModel.create({ status: 'passed'}),
YourModel.create({ status: 'failed'})
]
of objects 声明如下:
YourModel = Em.Object.extend({
status: null
});
您还可以创建 Component
,它可以在许多模型中重复使用。
组件代码:
App.StatusItemComponent = Em.Component.extend({
classNameBindings: ['status'],
status: function() {
var modelStatus = this.get('model.status');
if (modelStatus)
return 'status-' + modelStatus;
}.property('model.status')
});
模板代码:
{{#each item in model}}
{{#status-item model=item}}
An item with status: {{item.status}}
{{/status-item}}
{{/each}}
我仍在学习 ember,但我不知道如何根据某个控制器上返回的模型字符串来应用某些 CSS class。
官方文档 (http://emberjs.jsbin.com/yoqifiguva/1/edit?html,js,output) 只涵盖了你有布尔值的情况。
我没能将这些知识应用到我的案例中。 我有状态字符串字符串,如:"passed"、"failed"、"pendent" 和 "blocked",我想为每个状态应用不同的 css class .
关于如何实现的任何示例?
您可以使用bind-attr
,例如:
<ul>
{{#each item in model}}
<li {{bind-attr class='item.status'}}>An item with status: `{{item.status}}`</li>
{{/each}}
</ul>
产生以下 HTML:
<ul>
<li class="passed" data-bindattr-262="262">An item with status: `passed`</li>
<li class="failed" data-bindattr-265="265">An item with status: `failed`</li>
</ul>
对于collection:
[
YourModel.create({ status: 'passed'}),
YourModel.create({ status: 'failed'})
]
of objects 声明如下:
YourModel = Em.Object.extend({
status: null
});
您还可以创建 Component
,它可以在许多模型中重复使用。
组件代码:
App.StatusItemComponent = Em.Component.extend({
classNameBindings: ['status'],
status: function() {
var modelStatus = this.get('model.status');
if (modelStatus)
return 'status-' + modelStatus;
}.property('model.status')
});
模板代码:
{{#each item in model}}
{{#status-item model=item}}
An item with status: {{item.status}}
{{/status-item}}
{{/each}}