녹아웃으로 잘 작동하는 JQM 범위 슬라이더를 얻는 데 약간의 문제가 있습니다. 내가 인터넷에서 몇 가지 게시물을 읽어knockout.js를 사용하여 jQuery Mobile 범위 슬라이더를 올바르게 바인딩하고 초기화하는 방법은 무엇입니까?
var ViewModel = function() {
this.quantity = ko.observable(4);
}
$(document).ready(function() {
ko.applyBindings(new ViewModel());
});
:
<input type="range" name="quantity-slider" id="quantity-slider" min="0" max="10">
내가 준비 문서에 적용이 녹아웃 바인딩 샘플로 만든 : 이는 JQM 슬라이더에 대한 아주 기본적인 HTML 코드입니다 다른 사람들은 범위 슬라이더의 JQM 초기화 (예 : http://css.dzone.com/articles/knockoutjs-binding-helper 및 여기 : http://www.programico.com/1/post/2012/12/knockoutjs-jquerymobile-slider.html)와 관련된 몇 가지 문제를 발견하고 각자 자신의 사용자 정의 바인딩 구현을 사용하는 작업 솔루션을 제공합니다.
그들의하나는, (http://www.hughanderson.com/에 의해) 다음과 같습니다
data-bind="value: quantity, slider: quantity"
지금까지 너무 좋아. 그 후, 나는이 문제에 봉착한다.
JQM 슬라이더가 첫 페이지에 있다면, 그것은 작동한다. JQM 슬라이더가 두 번째 페이지에있을 때 더 이상 작동하지 않습니다.
나는이 particulary JQM 위젯과 DOM 조작과 관련된 문제라고 생각합니다.
- 작동하지 : http://jsfiddle.net/5q38Q/ 슬라이더를 두 번째 JQM 페이지에
- 작업 : http://jsfiddle.net/5q38Q/1/ 슬라이더를 처음 JQM에 더 나은 이것을 설명하기 위해, 난 그냥 두 JQM 페이지의 순서를 바꿔 두 jsFiddle을 만들었습니다 페이지
누군가 JQM 슬라이더 녹아웃 바인딩을 초기화하는 올바른 방법입니다 제발 설명해 주실 수 있습니까? 어쩌면 JQM 슬라이더에 대한 사용자 정의 바인딩을 작성하는 또 다른 방법이있을 수도 있고, 녹아웃 바인딩이 pagebeforeshow 이벤트에 삽입되어야 할 수도 있습니다.
UPDATE : 변화에 추종 는 슬라이더가 정확한 값을 표시하고, 텍스트 입력 부분도 동기화된다 : 더 나은 해결책이 없다
$(document).on('pagebeforeshow', '#slider-page', function(){
$('#quantity-slider').val(viewModel.quantity());
$('#quantity-slider').slider('refresh');
});
하지만 IM 경이 경우.
적어도 Varun의 맞춤 바인딩과 함께, 이제는 잘 작동합니다!
안녕하기 Varun 당신에게 당신의 경험과 작업을 공유하기위한 대단히 감사합니다 :
예를 참조하십시오 : 당신은 핸들러의 초기화시에 value 속성을 설정할 수 있습니다. 그러나 샘플을 시도 할 때 항상 동일한 문제가 발생합니다. 두 번째 페이지로 이동하면 슬라이더가 4로 초기화되지 않습니다. 그러면 문제가 발생하는 이유는 무엇입니까? – user2308978
이 문제에 대한 다른 게시물은 여기를 참조하십시오. http://stackoverflow.com/a/16493161/2308978 나에게도 유일한 맞춤 작업 바인딩은 사용자 것입니다! – user2308978
안녕하세요 Varun 나는 c-slider 래퍼없이 직접 ui-slider selector를 사용하여 코드를 변경했고, 또한 잘 동작했습니다. 답변을 업데이트하고 "ko if : is"가 필요한 이유를 설명해주십시오. 그것은 그것 없이도 나를 위해 일했습니다. 논쟁의 여지가있는이 문제에 대해 더 잘 설명 할 수 있다면 좋을 것입니다. – user2308978