我想要做的是從服務器獲取數據,然後將其全部放入可觀察對象中,然後使所有屬性可見。我面臨的問題是它並沒有使我的所有屬性都可觀察,我需要它們全部都是可觀察的,有時取決於數據,它使某些屬性可觀察,有時卻不可見。Knockout JS沒有設置可觀察的所有成員
var viewModel = this;
viewModel.Model = ko.observable();
viewModel.SetModel = function (data) {
viewModel.Model(ko.mapping.fromJS(data));
}
,我從服務器接收的數據是這樣的,例如:normaldata,項(這是具有未知數量元件的陣列)。 因此,如果我嘗試訪問像viewModel.Model().Items[0]().Layer()
這樣的數據,我有時會使用Layer作爲函數,有時它是具有可觀察元素的普通元素。我希望項目內的所有對象都具有Layer作爲函數。
服務器數據例如: 名稱: 「測試」 項目:[層[ID:132]] 在這個例子中名稱,產品ID和可觀察但層不是。
小提琴例如: jsfiddle.net/98dv11yz/3 所以問題是,有時該層是空導致KO使得房地產觀察到,但有時該酒店有ID和KO僅使子元素觀測。問題是,如果在代碼中,我希望它是一個函數,所以我總是可以將它視爲layer(),因爲它現在有時是圖層或圖層()
該帖子很難理解。請重新閱讀並嘗試澄清,並嘗試添加[mcve]。編輯 – Jeroen
...希望這已經夠好了! – xDevil
對不起,恐怕沒有太大的幫助。你是否檢查過我以前評論的鏈接?嘗試爲您的情況創建* runnable *(但最小)repro。從迄今爲止發佈的內容來看,這似乎是完全可能的。 (另外,如果你注意格式,如果可能的話在你的文章中拼寫也會有所幫助;編輯時會有實時預覽。) – Jeroen