Я пытаюсь создать сетку и обновить ее с помощью большего количества записей через JSON. В этом простом примере я могу достичь требуемой функциональности, но я могу только обновить/нажать одну запись JSON. Я хотел бы иметь возможность добавлять несколько записей через JSON? Как я мог это достичь? Я предположил, что мне, возможно, придется создать какой-то цикл for и подтолкнуть каждый результат JSON к наблюдаемому, но я надеялся, что у нокаута может быть лучший способ обновления/синтаксического анализа через JSON?
Вот копия того, что я до сих пор добился: http://jsfiddle.net/sparkhill/crSbt/
function Users(user_id, password) {
this.user_id = ko.observable();
this.password = ko.observable();
}
var viewModel = {
users: ko.observableArray([]),
addUser: function () {
this.users.push({
user_id: "",
password: ""
});
},
addJSON: function () {
//Works Fine
var JSONdataFromServer
='{"user_id":"frances","password":"password"}';
//More than one result - wont map - Would Ideally like to map lots of records at one time
//var JSONdataFromServer ='{"user_id":"frances","password":"password"}, {"user_id":"frances","password":"password"}';
var dataFromServer = ko.utils.parseJson(JSONdataFromServer);
this.users.push(dataFromServer);
//Tried
//this.users.push(JSON.parse(JSONdataFromServer));
}
};
viewModel.users();
ko.applyBindings(viewModel);
</script>
Обновление, похоже, работает, но я задаюсь вопросом, является ли это более эффективным методом?
addJSON: function () {
//Works Fine
var JSONdataFromServer
='[{"user_id":"frances","password":"password"},{"user_id":"timmy","password":"password"}]';
var results = JSON.parse(JSONdataFromServer);
var i = results.length;
for(var i = 0; i < results.length; i++){
this.users.push(results[i]);
};