下面的代碼對硬編碼數組(initialData1)非常有效,但是我需要使用jquery .ajax(initialData)初始化模型,並且在模型中顯示爲空時:如何使用.ajax數據初始化knockoutjs視圖模型
$(function() {
function wiTemplateInit(winame, description) {
this.WIName = winame
this.WIDescription = description
}
var initialData = new Array;
var initialData1 = [
{ WIName: "WI1", WIDescription: "WIDescription1" },
{ WIName: "WI1", WIDescription: "WIDescription1" },
{ WIName: "WI1", WIDescription: "WIDescription1" },
];
console.log('gridrows:', initialData1);
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{UserKey: '10'}",
url: "WIWeb.asmx/GetTemplates",
success: function (data) {
for (var i = 0; i < data.d.length; i++) {
initialData.push(new wiTemplateInit(data.d[i].WiName,data.d[i].Description));
}
//console.log('gridrows:', initialData);
console.log('gridrows:', initialData);
}
});
var viewModel = function (iData) {
this.wiTemplates = ko.observableArray(iData);
};
ko.applyBindings(new viewModel(initialData));
});
我一直在試圖從knockoutjs網站上的例子工作,但是幾乎所有的例子都是傳遞給視圖模型硬編碼數據。
一些你調試的網絡傳輸,看看有什麼回來?檢查是否有任何東西回來。如果是這樣,數據是什麼形狀?它與你的硬編碼日期相同嗎?有錯誤嗎? – 2012-01-13 20:37:35
「但是大多數例子顯示硬編碼數據被傳遞給視圖模型」。你確定嗎?(http://knockoutjs.com/documentation/json-data.html) – kamranicus 2012-01-13 20:52:04
John-I使用console.log調試和檢查數組,數據正在到達客戶端。兩個數組都是相同的語法,沒有錯誤。 – 2012-01-13 21:45:34