Javascript 使用knockout.js和json数据对列表进行排序
我正在使用knockout.js构建一个排序列表。我有一个使用简单可观察数组的版本,但如何使用json数据和映射插件Javascript 使用knockout.js和json数据对列表进行排序,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我正在使用knockout.js构建一个排序列表。我有一个使用简单可观察数组的版本,但如何使用json数据和映射插件 您的元素已绑定到视图模型的allItems数组。但在映射结果时,只有一个对象具有可观察属性name。没有allItems属性。因此,您只会收到一个错误: 错误:无法分析绑定。 消息:ReferenceError:未定义所有项; 绑定值:foreach:allItems 另一个问题是,您得到的响应是单个项{“name”:“Stuart”}(不是项数组)。您不能只将该项分配给视图模
您的
元素已绑定到视图模型的allItems
数组。但在映射结果时,只有一个对象具有可观察属性name
。没有allItems
属性。因此,您只会收到一个错误:
错误:无法分析绑定。
消息:ReferenceError:未定义所有项;
绑定值:foreach:allItems
另一个问题是,您得到的响应是单个项{“name”:“Stuart”}
(不是项数组)。您不能只将该项分配给视图模型的allItems
属性。您需要添加该项以查看模型项:
var viewModel = new ListSortModel();
ko.applyBindings(viewModel);
$.getJSON('http://echo.jsontest.com/name/Stuart', function (data) {
var item = ko.mapping.fromJS(data); // make it observable
viewModel.allItems.push(item); // add to view model items
});
我仍然希望使用映射插件从json映射数据。
var viewModel = new ListSortModel();
ko.applyBindings(viewModel);
$.getJSON('http://echo.jsontest.com/name/Stuart', function (data) {
var item = ko.mapping.fromJS(data); // make it observable
viewModel.allItems.push(item); // add to view model items
});