1
在下面的代碼中,fetch()和sync()方法沒有任何作用。 我想看看我的localStorage中的數據如何得到更新,並且方法沒有更新它(例如LS字符串在代碼中) 我在哪裏出錯?Kendo UI數據源同步()將不起作用
function makeWorkingLS(collDesc, projDesc, Id, Description, ElapsedSeconds, ElapsedTime, WorkItemType){
//Create observable object from params
var activeTaskObject = kendo.observable ({
client: collDesc,
project: projDesc,
taskId: Id,
description: Description,
elapsedSeconds: ElapsedSeconds,
elapsedTime: ElapsedTime,
comment: WorkItemType
});
// example string in localStorage:
//{"client":"Morken Mindy","project":"Shazbat creation engine","taskId":183,"description":"Create the Shazbat 100% efficiency engine","elapsedSeconds":296803,"elapsedTime":"82h43m","comment":"Task"}
// Convert to JSON string for localStorage
var activeTask = JSON.stringify(activeTaskObject);
console.info(activeTask);
//Write to localStorage
window.localStorage.setItem("activeTask",activeTask);
//Set it as the active datasource for updating to webservice
var activeTaskDS = new kendo.data.DataSource({
transport: {
read: function(options){
taskItem = JSON.parse(localStorage["activeTask"]);
},
update: {
url: remUpd, //url var declared earlier in the process
dataType: "json"
}
},
schema: {
model: {
client: "client",
taskId: "taskId"
},
data: function(){
return taskItem;
}
}
});
activeTaskDS.fetch(function(){
activeTaskDS.data()[0].set("client", "NOBODY");
activeTaskDS.sync();
cosole.log("activeTaskDS.data()[0] : "+activeTaskDS.data()[0]); //should read 'NOBODY' but reads 'Morken Mindy'
});
}
在此先感謝, 尼爾。
謝謝。這讓我更好地瞭解我需要如何繼續。 –
@NeilMcLeish但這回答了你的問題,或者你有問題? – DontVoteMeDown
謝謝。它已經部分回答了我的問題,但並未告訴我爲什麼sync()函數實際上並未更新localStorage中的數據。 對於這個特定的項目,我發現使用$ .ajax()調用更有效。在將數據發送回Web服務時需要檢查一些條件,並且Telerik的Kendo MobileUI文檔似乎只顯示高度簡化的示例,我選擇了我所知道的...... –