Javascript 如何使用敲除映射插件绑定匿名对象?
我试图列出此json数据中的所有用户名: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",
[{
"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);