2012-02-20 3 views
2

Я разрабатываю веб-приложение и решил пойти с 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, данные загружаются на страницу при ее рендеринге). Существуют ли какие-либо шаблоны для работы с большими наборами данных? Поскольку любой из вышеперечисленных объектов данных можно редактировать, я полагаю, что они должны быть наблюдаемыми. Спасибо за любые указатели!

ответ

1

В настоящее время я рассматриваю эту проблему, когда наткнулся на ваше сообщение. Затем я нашел это post и сообщение в блоге и пример jsfiddle. Это похоже на то, что вы (и я) ищите.

+1

Похоже, что knockout.mapping.js - это то, что я ищу. Должно автоматически сопоставлять все свойства с наблюдаемыми и всеми списками с наблюдаемыми массивами. – Greg

 Смежные вопросы

  • Нет связанных вопросов^_^