一个关于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>
...全文
161 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧