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'?它有三个级别的条件代码,所以只要确保:) –