可观察阵列中的项目未添加到列表KO
问题描述:
我从已加载的列表中取出一些数据并将它们添加到可观察数组中,我想将它们显示在另一个列表中,除非数据未显示在屏幕上 这里的代码可观察阵列中的项目未添加到列表KO
self.addData = function (val) {
self.finalList().push(val);
alert(val.LATIN_DESC);
}
<div class="container">
<h2> Added servcies</h2>
<div class="row" style="height:20vh; overflow:auto;">
<div class="col-md-3">
<ul data-bind="foreach:finalList">
<li class="list-group-item">
<div class="col-xs-3">
<b data-bind="text:LATIN_DESC , value: SYS_KEY"></b>
</div>
</li>
</ul>
</div>
</div>
</div>
observable array
目前持有
答
究竟是什么@connexo关于observableArray,还有当绑定b元素时,使用文本而不是值是有意义的,因为b元素不会改变值。
function TestVM(){
var self = this;
self.finalList = ko.observableArray();
self.addData = function (val) {
self.finalList.push(val);
alert(val.LATIN_DESC);
}
self.addData({LATIN_DESC: 'RR', SYS_KEY: 'GG'});
}
ko.applyBindings(new TestVM())
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div class="container">
<h2> Added servcies</h2>
<div class="row" style="height:20vh; overflow:auto;">
<div class="col-md-3">
<ul data-bind="foreach:finalList">
<li class="list-group-item">
<div class="col-xs-3">
<b data-bind="text:LATIN_DESC +'-'+ SYS_KEY"></b>
</div>
</li>
</ul>
</div>
</div>
</div>
答
self.finalList()
回报,然后self.finalList().push(val)
推的值返回的结果(使用JavaScript的本地Array.Prototype.push()
方法),而不是可观察数组本身。改为使用Knockout可观察阵列的推式方法:
self.finalList.push(val)
。