나는 바인딩 attr
간단한 HTML 요소가 alt
을 찾아 녹아웃 관측치로 자동 초기화합니다.knockout.js 데이터 바인딩 ATTR 기본값은
값 또는 텍스트 바인딩에는이 작업을 수행하는 데 많은 예제가 있지만 임의의 attr
바인딩에는 아무 것도 수행하지 않습니다.
이것이 가능합니까?
나는 바인딩 attr
간단한 HTML 요소가 alt
을 찾아 녹아웃 관측치로 자동 초기화합니다.knockout.js 데이터 바인딩 ATTR 기본값은
값 또는 텍스트 바인딩에는이 작업을 수행하는 데 많은 예제가 있지만 임의의 attr
바인딩에는 아무 것도 수행하지 않습니다.
이것이 가능합니까?
이 더러운이지만, 당신이 작성해야 많은 장소가없는 경우 도움이 :
<img src="defaultImage.png" alt="default" data-bind="attr: { src: imgUrl() || 'defaultUrl', alt: imgAlt() || 'defaultAlt' }" />
나도 같은 요구를했다을 -이 예제 만 img 태그에 대한 그냥 생각 속성, 그것은 쉽게 모든 속성 연장 될 수있다 :
ko.bindingHandlers.src = {
update: function (element, valueAccessor) {
ko.bindingHandlers.attr.update(element, function() {
return {src: valueAccessor()};
});
}
};
사용법 :
<img data-bind="src: imgUrl" />
위의 사용자 정의 바인딩은 고전적인 방법을 따릅니다. 먼저 관찰 가능 객체를 초기화하고 이미지 src 속성이 업데이트됩니다. 즉, img src는 녹아웃 관찰 가능의 기본 초기화 값을 사용합니다.
이ko.bindingHandlers.src = {
init: function(element, valueAccessor) {
var value = valueAccessor();
value(element.src);
},
update: function(element, valueAccessor) {
ko.bindingHandlers.attr.update(element, function() {
return {
src: valueAccessor()
};
});
}
};
마크 업의 사용은 동일하지만, 초기에 효과가 반전 : 당신은 반대 방법이 필요하면
, 당신은 사용자 정의 바인딩 초기화 콜백을 사용할 수 있습니다. https://plnkr.co/edit/CwI6KGirOkb3XpgS0Dj8?p=preview
당신이 아직 접근을 시도 유무 : 여기
는 Plunker입니까? 그것은 당신이 무엇을했는지 완전히 명확하지 않습니다. 그 이유는 질문을 매우 광범위하게 처리 할 수있는 많은 방법이 있기 때문입니다. ("가능한가요?", 공격이없는 대답은 "예"이며, 게시물이 위장 된 것보다 더 많이 읽는 것처럼 보입니다.) – Jeroen