首先對不起我的英文不好!用戶界面不會完全用KnockoutJS和JqueryUI更新可排序
無論如何,我想基於Knockout JS和JQuery UI做一個簡單的任務管理器。 經過一番研究,我發現了一個小插件,幫助KO與jQueryUI的的排序進行連接,你可以在這裏讀到它:http://www.knockmeout.net/2012/02/revisiting-dragging-dropping-and.html
插件效果很好更新觀察到陣列的順序,但我也需要更新一些值基於它們在陣列中的位置的元素。我試圖在每次排序後更新整個數組,我注意到一個奇怪的行爲:雖然UI保持不變,但如果將數組發送到JSON,它將使用正確的值進行更新!
你可以找到我的代碼在這裏的一個片段:http://jsfiddle.net/ingro/mz3MK/
嘗試移動了一些要素的排序列表,然後看到用戶界面,並與「打印」按鈕顯示的值之間的差異。
編輯:嘗試將第一個元素(測試#1)拉到可排序列表的底部。元素的屬性'時間'保持不變(07:00)。現在把它帶到可排序列表的第二個地方,你注意到'時間'這個屬性變成了「10:00」!事實上,只有在拖動某個東西時纔會刷新UI,並且只有被拖動的元素纔會刷新到拖動前的狀態。但是,如果您打印陣列的值,則可以看到總是刷新:\
感謝任何能夠幫助我的人!
我有點困惑。小提琴的印刷品與用戶界面相匹配。這兩個數字不會重新排列,是你想要發生什麼? – Tyrsius
對不起,也許我沒有解釋得很好。嘗試將第一個元素(測試#1)拖到可排序列表的底部。元素的屬性'時間'保持不變(07:00)。現在把它帶到可排序列表的第二個地方,你注意到'時間'這個屬性變成了「10:00」!事實上,只有在拖動某個東西時纔會刷新UI,並且只有被拖動的元素纔會刷新到拖動前的狀態。但是,如果您打印數組的值,則可以看到總是刷新:\ – Ingro