我正在使用基于Django的Dashing框架。
HTML使用Rivets.js约定将数据绑定到脚本文件。
<div rv-status-color="value">
<h1>{ title }</h1>
<h2>{ value }</h2>
<p class="detail">{ detail }</p>
<p class="more-info" rv-show="moreInfo">{ moreInfo }</p>
<p class="updated-at" rv-show="updatedAt">{ updatedAt }</p>
</div>
<i rv-class="icon" rv-show="icon"></i>
以下脚本从HTML获取值并根据条件将必要的颜色设置为.css。
rivets.binders['status-color'] = function(el, value) {
if (value == 0) {
$(el).css('background-color', 'green');
}
else if (value < 0) {
$(el).css('background-color', 'orange');
}
else {
$(el).css('background-color', 'red');
}
};
您能否告诉我如何重写脚本以获取{detail}值并将其与{value}进行比较?
类似的东西:
rivets.binders['status-color'] = function(el, value) {
if (value == detail) {
$(el).css('background-color', 'green');
}
else if (value < detail) {
$(el).css('background-color', 'orange');
}
else {
$(el).css('background-color', 'red');
}
};
提前谢谢。
答案 0 :(得分:0)
您可以将对象传递给活页夹而不是静态值。
<div rv-status-color="yourObject">
然后使用脚本中的对象
rivets.binders['status-color'] = function(el, obj) {
if (obj.value == obj.detail) {
$(el).css('background-color', 'green');
}
else if (obj.value < obj.detail) {
$(el).css('background-color', 'orange');
}
else {
$(el).css('background-color', 'red');
}
};
答案 1 :(得分:0)
您只需要执行以下操作:
rivets.binders['status-color'] = function(el, value, scope) { //scope being the current bound object
var detail=scope.detail;
if (value == detail) {
$(el).css('background-color', 'green');
}
else if (value < detail) {
$(el).css('background-color', 'orange');
}
else {
$(el).css('background-color', 'red');
}
};