2012-05-16 2 views
2

비동기 서비스에서 작업 목록을로드하는 knockout js를 사용하고 있습니다. 각 작업에는 매우 긴 필드 목록이 있으며 원시 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

당신이 모델의 속성 변경이 특성이 관찰되지 않기 때문에 때 라벨을 업데이트 늘 사용하는 현재의 접근 방식. 매핑 플러그인을 사용하면이 문제도 해결됩니다.