Я разрабатываю веб-приложение и решил пойти с knockout.js для управления клиентским интерфейсом и привязками. На самом деле это нравится, но есть несколько вопросов относительно ko.observables. Моя intial полезная нагрузка данных выглядит следующим образом:knockout.js - наблюдаемые на большом количестве объектов данных
{
clients: [{id:1, fname:'foo', lname:'bar', email:'...', ...}, ...]},
appointments: [{...appointment object...}, ...]
}
любой объект в приведенных выше данных может содержать много данных, легко несколько сотен объектов, как те выше, с каждым объектом, содержащим 10 - 15 свойств. В настоящее время на моем приложения инициализации, я делаю что-то вроде:
$.each(clients, function (idx, client) {
$.each(client, function (property, value) {
client[property] = ko.observable(value);
});
client[idx] = client;
});
self.clients = ko.observableArray(clients);
Это похоже на работу, но и, кажется, как много накладных расходов, и я заметил значительное отставание в то время как мое приложение в это инициализации шаг (не требуется ajax, данные загружаются на страницу при ее рендеринге). Существуют ли какие-либо шаблоны для работы с большими наборами данных? Поскольку любой из вышеперечисленных объектов данных можно редактировать, я полагаю, что они должны быть наблюдаемыми. Спасибо за любые указатели!
Похоже, что knockout.mapping.js - это то, что я ищу. Должно автоматически сопоставлять все свойства с наблюдаемыми и всеми списками с наблюдаемыми массивами. – Greg