目前,我有我的所有的標籤看起來像這樣:您可以在自定義綁定中設置現有的Knockout綁定嗎?
<label data-bind="css: { notdone: FirstName.isModified() && !FirstName.isValid(),
done: FirstName.isModified() && FirstName.isValid() }">FirstName</label>
我想創建一個自定義綁定中提取出跨標籤重複沒有重新實現CSS結合。
我可以在我的自定義綁定中使用CSS綁定嗎?
如果沒有,那麼我將爲了重新發明輪子擺脫一些重複的,像這樣:
ko.bindingHandlers.validationLabel =
{
update: (element, valueAccessor) =>
{
var value = valueAccessor();
var isModified = value.isModified();
var isValid = value.isValid();
$(element).removeClass("done notdone");
if (!isModified)
return;
$(element).addClass(isValid ? "done" : "notdone");
}
}
閱讀後,我傾向於使用[template](http://knockoutjs.com/documentation/template-binding.html)作爲標籤。假設'FirstName'是一個可觀察對象,將它與您要使用的標籤一起傳遞到模板中,並使用動態類版本的css綁定。參見[fiddle](http://jsfiddle.net/origineil/eDLKB/)。 – Origineil