在我的ViewModel我已經根據pState
返回我的CSS類下面的方法:如何在knockout.js中添加由javascript方法生成的css類?
function MyViewModel()
{
var self = this;
self.GetClass = function(pState)
{
var lCssClass;
switch(pState)
{
case "warning":
lCssClass = 'bg-yellow';
break;
case "red":
lCssClass = 'font-red';
break;
default:
lCssClass = 'font-default';
break;
}
return lCssClass;
};
}
我要添加的類別在我看來:
<span class="list-item" data-bind="attr : { class : $root.GetClass('warning')}">This is a warning.</span>
我的問題:現有的類list-item
將被覆蓋。
這裏是一個小提琴:http://jsfiddle.net/d8L6v9h7/
它不會是至少更好地使用計算的可觀察值?根據我的理解,這個GetClass需要每次調用才能獲得更新的值。摧毀可觀察的否定的目的? – Pogrindis
是的,我同意有一些代碼氣味可能需要解決(以您建議的方式)。但是,OP尚未發佈足夠的他/她的設置以便能夠執行代碼審查c.q.建議替代品而不訴諸猜測。這就是爲什麼我直接回答這個問題。 – Jeroen
夠公平的!一旦我沒有失去理智! – Pogrindis