簡體   English   中英

敲除JS數組為空或無法檢索值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM