挖空错误,视图模型未绑定



我的代码是这样的:

<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 时,我什么也没看到......表和行为空。.这意味着视图模型未正确绑定。当我看着Chrome的控制台时,它说:

 NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7

我开始学习淘汰赛,如果您能告诉我如何解决这个问题,我将不胜感激......

您的 JSON 看起来有点奇怪,请删除消息值周围的 []。我想它应该是一个字符串吧?您如何生成 JSON?

更新:

当我再次查看它时,我意识到您尝试将文本绑定到 tr 元素,但 tr 只能包含 td 元素,因此您需要在 tr 中添加一个 td 并将数据绑定到 td 元素。

试试这个:

    <div id="messagesList">
        <table>
            <tbody data-bind="foreach: model.Messages">
                <tr>
                   <td data-bind="text: Message"></td>
                </tr>
            </tbody>
        </table>
    </div>

相关内容

  • 没有找到相关文章

最新更新