Я пытаюсь создать сетку и обновить ее дополнительными записями через 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]);
};