내가 현재 가지고 이런 식으로 뭔가를 찾고 내 모든 라벨 :사용자 정의 바인딩 내에서 기존의 녹아웃 바인딩을 설정할 수 있습니까?
<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");
}
}
게시물을 읽은 후, 나는 [템플릿] (http://knockoutjs.com/documentation/template-binding.html)을 사용하여 레이블에 기대고있었습니다. 'FirstName'은 관찰 가능하다고 가정하고, 템플릿에 사용할 레이블과 함께 전달하고 css 바인딩의 동적 클래스 버전을 사용합니다. [바이올린] (http://jsfiddle.net/origineil/eDLKB/)을보십시오. – Origineil