一个关于knockout绑定更新的问题
松果工作室 2016-12-30 11:08:47 功能描述:初始加载、显示10条记录,点击【显示更多】按钮在原有的基础上追加10条记录。前端是bootstrap + knockout。
思路:
1、json16306这个JSON对象(数组)被监听;
2、data-bind
3、点击【显示更多】按钮,更新json16306
问题:josn16306被更新之后,被ko监测到,按理应该更新列表。但结果是没有得到更新!请高手指教!
下面粘出代码:
<div class="container">
<div class="row">
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-title">16306班</div>
</div>
<div class="panel-body">
<div class="list-group" data-bind="foreach: list">
<a class="list-group-item" data-bind="attr: {href: Url}"><span data-bind="text: Name"></span><span class="badge" data-bind="text: Type"></span></a>
</div>
</div>
<div class="panel-footer">
<button class="btn btn-primary more">显示更多</button>
</div>
</div>
</div>
</div>
</div>
<script>
function getData(className, recoredCount) {
var json;
$.ajax({
async: false,
url: "handler/GetData.ashx",
type: "post",
data: { className: className, recordCount: recoredCount },
success: function (data) {
json = eval('(' + data + ')');
}
});
return json;
}
$(function () {
var json16306 = getData("16306", 5);
var vm16306 = { list: ko.observableArray(json16306) };
ko.applyBindings(vm16306);
$(".more").click(function () {
var count = $(this).parent().prev().find("a").length;
if (count <= 41) {
json16306 = getData("16306", count + 10);
}
});
});
</script>