0
我有對象TransactionVModel.FiltersList[]
的數組引用類型。
當我這個數組複製到另一個陣列fltrList[]
,如果我修改任何對象的數組fltrList
將得到它在JQuery的陣列TransactionVModel.FiltersList
反映?爲了更清晰起見,下面是我的例子。由於它是一個引用類型,因此它應該更新數組TransactionVModel.FiltersList
,但在我的情況下它不會發生,我可以知道它爲什麼不會發生嗎?複製對象數組另一個陣列是它在JQuery中
TransactionVModel.FiltersList
被聲明爲我的代碼ko.observableArray();
。
function UpdateSelectedFilters(data) {
var fltrList = [];
fltrList = TransactionVModel.FiltersList();
for (var i = 0; i < data.length ; i++) {
var index = fltrList.indexOf(data[i]);
if (index != -1) {
var fltrObj = fltrList[index];
var fltrValArr = [];
fltrValArr = data.valueItems;
for (var j = 0; j < fltrValArr.length; j++) {
if (fltrValArr[j].IsSelected == true) {
if (fltrObj.indexOf(fltrValArr[j]) != -1) {
var selectedVal = fltrObj[fltrObj.indexOf(fltrValArr[j])];
selectedVal.IsSelected = true;
}
}
}
}
}
我的方案,我更新selectedVal.IsSelected
屬性,但它並不反映observableArray TransactionVModel.FiltersList
。
你確定代碼實際上是設置'selectedVal'?它有三個級別的條件代碼,所以只要確保:) –