0
我試圖在web應用程序中實現引導滑塊並使用knockoutjs進行數據處理。將Knockoutjs數組綁定到引導滑塊
的Javascript
$(document).ready(() => {
function ViewModel() {
singleValue = ko.observable(20)
arrayValues = ko.observableArray([20, 50])
}
ko.applyBindings(ViewModel)
})
HTML
<input
type ='text'
data-slider-min = 0
data-slider-max = 100
data-slider-step = 1
data-slider-tooltip ='hide'
data-provide ='slider'
data-slider-value = 20
data-bind = 'value: singleValue'
/>
<p data-bind='text: singleValue'></p>
這工作完全正常。如果我更改滑塊的值,則p中的值會相應更改。
<input
type ='text'
data-slider-min = 0
data-slider-max = 100
data-slider-step = 1
data-slider-tooltip ='hide'
data-provide ='slider'
data-slider-value = [20, 40]
data-bind = 'value: arrayValues'
/>
<p data-bind='text: arrayValues()'></p>
// output is 20,50, so knockout is taking precedence,
// because I set the initial value to [20, 40] in html
如果我更改滑塊的值,它似乎值相應地改變。但它不再是一個數組,它是一個字符串值。但是最小值和最大值與滑塊正確更改。
<p data-bind='text: arrayValues()[0]'></p>
這裏輸出是20,當站點被渲染時。這是我的預期。 但是,只要我開始移動滑塊,數組就變成了一個字符串,輸出變爲2,這是20,40的第一個字符。
有沒有人知道我在做什麼錯了?
** **感謝svschmidt!這個伎倆!雖然沒有我想要的那麼好,但它起作用。感謝您的信息,只輸入字符串作爲值! 有一個問題:你用let _val = ko.observable([20,50])。你爲什麼不使用observableArray? – HexXx
@HexXx很高興能幫到你!說實話,我在回答時沒有想到可觀察陣列。我想你可以輕鬆使用一個。 – SVSchmidt