ajax 호출을 통해 가격이 업데이트되는 동안 진행률 아이콘 (회 전자 또는 막대)을 표시하기 위해 맞춤 바인딩을 사용하고 싶습니다.KnockoutJS - 애니메이션 추가를위한 맞춤 바인딩 사용
녹아웃을 사용하기 전에 저는 아약스 메서드의 시작 부분에서 onUpdating()을 호출하고 아약스가 가격을 성공적으로 반환했을 때 onUpdated (price)를 호출했습니다. 지금 넉 아웃을 사용하고 있습니다으로
function onUpdating() {
$(".price").empty().html('<img src="/Content/Img/Site/progress.gif" />');
}
function onUpdated(price) {
$(".price").empty().html('£' + price);
}
나는 사용자 지정 바인딩을 사용하고 싶습니다하지만 난 그냥 캔트 그것이 작동하는 방법 주위에 내 머리를 얻을.
ko.bindingHandlers.showProgress = {
init: function (element, valueAccessor) {
$(element).empty().html('<img src="/Content/Img/Site/progress.gif" />');
},
update: function (element, valueAccessor) {
$(element).empty().html('£' + valueAccessor());
}
}
<p>
Price: <span data-bind="showProgress: price"></span>
</p>
그러나이 전혀 작동하지 않습니다
나는 이런 식으로 뭔가를 생각한다. 어떤 도움이라도 대단히 감사합니다.
ko.bindingHandlers.showProgress = {
update: function (element, valueAccessor) {
$(element).empty().html('<img src="/Content/Img/Site/progress.gif" />');
var value = ko.utils.unwrapObservable(valueAccessor());
$(element).empty().html('£' + value);
}
}
안녕하세요. Ryan,이 문제에 대해 도움을 주셔서 감사합니다. 이미 존재하는 뷰 모델에 이것을 어떻게 통합합니까? – BrightonDev
샘플 코드 나 바이올린이 있습니까? 'loading' observable을 실제로 추가 할 수 있습니다. 그래서 당신이 채우고있는 관찰자의 하위 관측자 일 필요는 없습니다. –
안녕하세요, 라이언, 바이올린에 적합한 예제를 만드는 방법을 모르는 경우 예제 링크를 보냈습니다. 불행히도 나는 아직 작업중인 사이트에 대한 링크를 게시 할 수 없습니다. – BrightonDev