已解決!這是一個淘汰賽問題(錯誤的綁定)。但也許有人喜歡爭論或評論一般的代碼(dataservice,viewmodel等)。獲取一條數據庫記錄,顯示,更新並將其保存回數據庫
我試着構建一個Breeze示例,在那裏我得到一個數據庫記錄(使用fetchEntityByKey),顯示它進行更新,然後使用保存按鈕將更改寫回數據庫。我無法弄清楚如何讓它起作用。
我試圖具有的DataService(「類」)和視圖模型(「類」),用基因敲除的視圖模型綁定到視圖。
我非常感謝,如果有人可以提供樣品或提供一些提示。
Thankx,哈利
var dataservice = (function() {
var serviceName = "/api/amms/";
breeze.NamingConvention.camelCase.setAsDefault();
var entityManager = new breeze.EntityManager(serviceName);
var dataservice = {
serviceName: serviceName,
entityManager: entityManager,
init: init,
saveChanges: saveChanges,
getLocation: getLocation
};
return dataservice;
function init() {
return getMetadataStore();
}
function getMetadataStore() {
return entityManager.fetchMetadata()
.then(function (result) { return dataservice; })
.fail(function() { window.alert("fetchMetadata:fail"); })
.fin(function() { });
}
function saveChanges() {
return entityManager.saveChanges()
.then(function (result) { return result; })
.fail(function() { window.alert("fetchEntityByKey:fail"); })
.fin(function() { });
}
function getLocation() {
return entityManager.fetchEntityByKey("LgtLocation", 1001, false)
.then(function (result) { return result.entity; })
.fail(function() { window.alert("fetchEntityByKey:fail"); })
.fin(function() { });
}
})();
var viewmodel = (function() {
var viewmodel = {
location: null,
error: ko.observable(""),
init: init,
saveChanges: null
};
return viewmodel;
function init() {
return dataservice.init().then(function() {
viewmodel.saveChanges = dataservice.saveChanges;
return getLocation();
})
}
function getLocation() {
return dataservice.getLocation().then(function (result) {
return viewmodel.location = result;
})
}
})();
viewmodel.init().then(function() {
ko.applyBindings(viewmodel);
});
你能粘貼一個代碼示例嗎?您是否收到saveChanges調用的錯誤? – Richard 2013-03-03 19:59:24
嗨理查德...我已經添加了上面的代碼。不,我沒有從調用saveChanges中得到一個錯誤 – iwhp 2013-03-04 14:32:34
嗨,理查德......這不是Breeze的編碼問題,我在Knockout上做了一些錯誤。也許你想評論上面的代碼... Thankx! – iwhp 2013-03-04 15:40:42