2012-05-16 4 views
2

Я использую knockout js, загружая список заданий из службы async. У каждой работы есть очень длинный список полей, и мне интересно, считать ли это плохую практику хранением данных как сырой json?knockout.js - наилучшая практика хранения данных объектов

function Job(data) { 
    var self = this; 
    this.data = data; // is this bad practice? 

    this.companyName = data.CompanyName; // should I instead list out all the fields? 
    this.jobTitle = data.JobTitle; 
    // .. 50 more fields 
} 

function JobsViewModel() { 
    function getJobs() { 
     $.getJSON(myUrl, { myParams }, function(data) { 
      var mappedJobs = $.map(JSON.parse(data.value), function(item) { return new Job(item) }); 
      self.jobs(mappedJobs);       
     }); 
    } 

    // initial data load 
    getJobs(); 
} 

... // then in my data-bindings 
<label data-binding="text: data.CompanyName"></label> 
    versus 
<label data-binding="text: companyName"></label> 

Последний чище и понятнее, но поскольку у меня много полей, я хотел бы получить некоторые мнения.

Спасибо.

ответ

3

Вы должны посмотреть плагин отображения нокаута. Он будет генерировать свойства из ваших данных, поэтому вам не придется писать все свойства.

http://knockoutjs.com/documentation/plugins-mapping.html

В настоящее время подход вы используете обыкновение обновлять метку, когда свойство изменения в модели, потому что ваши не различимы. Использование плагина отображения также исправит это.

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