Knockout映射插件未映射模型内的数组

Knockout mapping plugin not mapping array inside model

本文关键字:映射 数组 插件 Knockout 模型      更新时间:2023-09-26

我试图将一些数据(从jQuery$.ajax调用返回)映射到视图模型,但由于某些原因,嵌套数组没有映射。

    <p>Name: <input data-bind="value: Name" /></p>
    <p>Age: <input data-bind="value: Age" /></p>
    <p>Friends: <span data-bind="text: Friends.length"></span></p>

    <script type="text/javascript">
        var viewModel = null;
        var data = { "Name": "Simon", "Age": "24", "Friends": [{ "Name": "Bill", "Age": "24" }, { "Name": "Peter", "Age": "21"}]};
        viewModel = ko.mapping.fromJS(data);
        ko.applyBindings(viewModel);
    </script>

在这个简单的例子中,Simon没有朋友。。。

mapping.fromJS将数组转换为可观察的数组,因此Friends是一个可观察的阵列,要访问其底层javascript数组,您需要将其称为:Friends().length