我有,一旦加載遠程模式對話框創建了信息的幾位新模式的模態這樣:KnockoutJS的foreach心不是內工作的遠程加載模態對話框
var modalModel = {
SessionId: viewModel.SessionId(),
RetCols: ko.observableArray([])
};
$('#UploadModal').ajaxComplete(function (event, request, settings) {
ko.applyBindings(modalModel, $('#zupload')[0]);
});
這工作得很好,我m打印會話id到模式,所以我知道那裏的信息和模型顯示在螢火蟲。不過,我有以下函數,它會調用ajax並將響應讀入observableArray RetCols。這樣做是因爲我在頁面上打印長度並顯示它有項目,但我不能爲我的生活提供它。這裏有什麼不對嗎?下面是Ajax調用:
function uploadSubmit() {
$.ajax({
url: '/Upload/UserSaveFileInfo/',
type: 'post',
async: false,
data: ko.toJSON({
UploadName: $("#uploadName").val(),
UploadDescription: $("#uploadDescription").val(),
Id: $('#uploadId').val()
}),
contentType: 'application/json',
success: function (result) {
for (var i = 0; i < result.length; i++)
{
modalModel.RetCols.push({
Id: result[i].Id,
Header: result[i].Header,
Values: result[i].Values,
MatchedTo: result[i].MatchedTo,
ColumnNumber: result[i].ColumnNumber
});
}
alert(modalModel.RetCols().length);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(data);
}
});
}
,這裏是我的模式,這並不比特希望工作:
<span data-bind="text: modalModel.RetCols().length"></span> <!-- this works! -->
<!-- ko foreach: modalModel.RetCols -->
<div class="control-group" >
<label class="control-label">
Column <span data-bind="text: $data.ColumnNumber"></span>
</label>
<div class="controls">
<input data-bind="value: $data.MatchedTo" />
<span class="help-block" data-bind="text: $data.Values"></span>
</div>
</div>
<!-- /ko -->
任何幫助,將不勝感激!這裏是一個小提琴:http://jsfiddle.net/ZLBpu/154/由於模態的遠程加載,它與上面描述的有點不同,但我已經或多或少地重複發生了什麼。
編輯:特別是,moveToModal的ajax調用似乎是什麼導致這個炸彈出來。這個小提琴在ajax調用中具有相同的功能,它的工作原理與我預期的一樣:http://jsfiddle.net/valvemail/RJ8Vx/1/。所以特別是ajax調用一定有問題。
我已經試過這兩種方法及其仍然沒有工作...我認爲,一個foreach將有或沒有它的工作,我只是用來處理孩子的集合,所以我已經得到了在使用它的習慣... – zach
好的...我不認爲這應該是一個問題,但你有沒有嘗試在foreach行上更改「modalModel.RetCols」爲「modalModel.RetCols()」? –
我想你誤解了這個問題,如果我不清楚,我很抱歉。我有2個獨立的視圖模型,其中一個存在於父頁面上,一個是我在創建ajax加載模式窗口時創建的。 modalModel是用於加載iframe的數據。我會做一個小提琴,但因爲它有一個外部iframe它有點棘手...modalModel只針對iframe內容,這就是爲什麼我在ajax完成加載iframe內容後應用模型...生病嘗試弄出一個小提琴,但我只是想要一種方式在斷開連接時尚。 foreach RetVals()不起作用要麼 – zach