【发布时间】:2012-06-25 10:30:18
【问题描述】:
我的代码是这样的:
<div id="DivToUpdate">
<div>
SELECTED ROOM:
<input type="text" id="currentRoom" /></div>
<div id="messagesList">
<table>
<tbody data-bind="foreach: model.Messages">
<tr data-bind="text: Message">
</tr>
</tbody>
</table>
</div>
</div>
<script type="text/javascript">
var viewModel = {};
$('#DivToUpdate').click(function () {
$.getJSON("/ControllerAction/JsonPopulateMessages", { jsonRoom: $('#currentRoom').val() }, function (data) {
var trueData = JSON.stringify(data);
alert(trueData);
viewModel.model = ko.mapping.fromJSON(trueData);
ko.applyBindings(viewModel);
});
});
</script>
我返回的 JSON 数据格式如下:
{"Messages":[{"Message":["yow!"]},{"Message":["hey!"]}]}
当我尝试运行代码并单击 DivToUpdate 时,我什么也看不到...表和行是空的.. 意味着 viewmodel 没有正确绑定.. 当我查看 chrome 的控制台时,它说:
NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7
我开始学习淘汰赛,如果你能告诉我如何解决这个问题,我将不胜感激......
【问题讨论】:
-
是否有理由将数据映射到 viewModel.model 而不是直接映射到 viewModel 根目录? viewModel 是否也包含其他数据?否则看起来有点混乱。
-
我想使用敲除,以便页面可以更新而无需重新加载或刷新
标签: jquery mvvm knockout.js viewmodel knockout-mapping-plugin