我正在嘗試製作一個相冊網站來學習。我正在使用的屏幕現在顯示了相冊列表。每張專輯都附有0到多張照片。在Knockout中讀取一個複雜對象的計數
在我的淘汰賽視圖模型,我有:
self.Albums = ko.observableArray([]);
這是填充專輯的列表,從我的API調用的對象。每張專輯都有一張照片列表。
我撥打電話,以獲得專輯:
var urialbums = '/api/Photo/GetAlbums';
$.get({ url: urialbums, contentType: "application/json" })
.done(function (data) {
vm.Albums(data);
});
數據由一個JSON對象的(我想?),這是該序列化版本:
public class UIAlbumModel {
public int ID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTime CreatedDate { get; set; }
public int PrivacyTypeID { get; set; }
public string PrivacyType { get; set; }
public List<UIPhotoModel> Photos { get; set; }
}
,你可以看,它有一張照片列表。
一張照片是一張帶有照片名稱和URL的對象。
在我看來,我顯示了具有專輯名稱的專輯列表。但是,在專輯名稱旁邊,我試圖顯示專輯中的照片數量。
<div data-bind="foreach: Albums">
<div class="col-xs-3">
<p><span data-bind="text: Name"></span> (<span data-bind="text: Photos().length"></span>)</p>
<span class="glyphicon glyphicon-folder-open"> </span>
</div>
</div>
但它在照片的計數上失敗。
text: Photos().length
錯誤:
knockout-3.4.0.js:72 Uncaught TypeError: Unable to process binding "text: function(){return Photos().length }" Message: Photos is not a function
我怎樣才能得到孩子的照片在相冊中,我是通過目前的foreach-ING多少?
照片不是可觀察數組,而是普通數組。我認爲有更多的錯誤可能有助於診斷問題,但是'Photos.length'是否有效? – peinearydevelopment
我已將錯誤添加到問題中。 – Craig
哦!而Photos.length確實有效!這似乎是問題。 – Craig