[英]Knockout JS array empty or can't retrieve values?
我有一個Javascript Ajax函數,可從服務器檢索注釋(注意:我是Knockout JS的新手):
function Comments() {
var self = this;
self.commentArray = ko.observableArray();
self.getNewerComments = function(lastCommentId) {
pageId = $('body').attr('id');
$.ajax({
type: "GET",
dataType: "json",
url: "Controller/getNewerComments/" + pageId + "/" + lastCommentId,
})
.done(function(data) {
self.commentArray = ko.observableArray(data);
alert(self.commentArray[0].authorName);
})
}
}
有了警報,我可以看到確實在其中設置了值,在我的JS文件的開頭,我有以下代碼:
var comments = new Comments();
ko.applyBindings(comments);
comments.getNewerComments(0);
並在html文件中:
<!-- ko foreach: commentArray -->
<li>Item <span data-bind="text: $index"></span></li>
<!-- /ko -->
</div>
但是,html文檔中什么也沒有顯示,甚至“ Item”文本也沒有顯示,這表明數組的長度為0。 這是什么問題 為什么不能使用數組值?
謝謝。
您應該使用現有的可觀察數組(已綁定),而不是創建一個新的數組:
.done(function(data) {
self.commentArray(data);
alert(self.commentArray[0].authorName);
})
您要設置兩次可觀察數組。 在開始時,再在Ajax調用中。 一旦建立了模型並應用了綁定,就無需再與可觀察對象打交道了。 完成。 與模型關聯的數據對象的任何更改都將得到處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.