Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用敲除映射插件绑定匿名对象?_Javascript_Json_Knockout.js_Knockout Mapping Plugin - Fatal编程技术网

Javascript 如何使用敲除映射插件绑定匿名对象?

Javascript 如何使用敲除映射插件绑定匿名对象?,javascript,json,knockout.js,knockout-mapping-plugin,Javascript,Json,Knockout.js,Knockout Mapping Plugin,我试图列出此json数据中的所有用户名: [{ "full_name": "root", "group": 0, "home": "/root", "username": "root", "id": 1 }, { "full_name": "Owner of many system processes", "group": 1, "home": "/root",

我试图列出此json数据中的所有用户名:

[{
        "full_name": "root",
        "group": 0,
        "home": "/root",
        "username": "root",
        "id": 1
    }, {
        "full_name": "Owner of many system processes",
        "group": 1,
        "home": "/root",
        "username": "daemon",
        "id": 2
    }, {
        "full_name": "System",
        "group": 5,
        "home": "/",
        "username": "operator",
        "id": 3
    }]
我的HTML如下所示:

 <body>
        <h2>Knockout list</h2>
        <ul data-bind="foreach: users">
            <li data-bind="text: username"></li>
        </ul>

        <script type="text/javascript">
            function getUsers()
            {
                return $.ajax
                        ({
                            type: "GET",
                            url: "http://XXX.XXX/api/userinfo",
                            username: "root",
                            password: "meh",
                            cache: false,
                            dataType: "json"
                        });
            }

            getUsers().done(function(results)
            {
                var users = "{users: " + results + "}";
                var viewModel = ko.mapping.fromJS(users);
                ko.applyBindings(viewModel);
            });

        </script>
 </body>
我认为在json中添加任何内容都不是一个好主意。我试图使用
var-users=“{users:+results+”}”,但这是一个更绝望的步骤比任何其他,我想避免它,如果可能的话


你知道怎么做吗?谢谢。

鉴于您的HTML,您的viewmodel需要有一个名为users的属性,因为这是您在foreach循环中迭代的内容。我不能确定,但是根据结果创建新对象的线条看起来不正确。您可以尝试在viewmodel上创建显式用户属性,并将映射结果指定给它:

var viewModel = {};
viewModel.users = ko.mapping.fromJS(data);
ko.applyBindings(viewModel);
创建了一个,它在那里工作

var viewModel = {};
viewModel.users = ko.mapping.fromJS(data);
ko.applyBindings(viewModel);