2014-11-13 2 views
2

나는 저장소에 대한 다양한 제안을 표시하는 동적 목록 뷰를 가지고 있습니다. 사용자가 listview에서 선택할 때 이러한 제안을 저장하여 localStorage를 사용하여 저장된 오퍼 기능을 생성 할 수있게하려고합니다.localStorage 개체에 요소 추가

나는 listview에서 제안을 선택하는 것에서 1 제안을 저장할 수있는 지점에 도달 할 수있었습니다.

목록보기 행을 선택하면 특정 선택 항목에서 데이터 속성을 가져 와서 배열을 채운 다음 localStorage로 전달합니다.

JS 내가 다른리스트 뷰 선택이 저장된 이벤트의 배열을 생산하기 위해 만든 때 offerObject 변수에 추가하려고

var offerObject = '';                                           
$("#offers ul").on("click", ">li", function(event, ui) {                                           
    var offertitle = $(this).closest('li').attr('data-offer-title'); 
    var offerdesc = $(this).closest('li').attr('data-offer-desc'); 
    var offerexpiry = $(this).closest('li').attr('data-offer-expiry'); 

    offerObject= {"offer":[ 
     { 
      'offertitle': offertitle, 
      'offerdesc': offerdesc, 
      'offerexpiry': offerexpiry 
     } 
    ]}; 
    localStorage.setItem('offerObject', JSON.stringify(offerObject)); 
}); 

.

현재 내가 다른 항목을 선택하면 제안 목록은 해당 목록 행의 새로운 속성 선택으로 바뀝니다.

비슷한 질문에서 이렇게하려면 .push를 사용해야 함을 이해합니다. 내가 그렇게하는 데 어려움을 겪고 있기 때문에 어떤 조언을 주시면 감사하겠습니다.

+0

이 게시물을 확인하십시오. http://stackoverflow.com/questions/17249266/html5-local-storage-store-form-data-for-select-box-where-multiple-values-are-sel – ak85

답변

0

예. 일반적으로 .push를 사용합니다. 단계는 다음과 같습니다.

//create an offer 
var offer = { 
     'offertitle': offertitle, 
     'offerdesc': offerdesc, 
     'offerexpiry': offerexpiry 
}; 
// Add offer to the array of offers and save it 
var offers = JSON.parse(localStorage.getItem('offers')); 
// if offers is null just create an empty array [] 
if (offers === null || offers === undefined) { 
    offers = []; 
} 
offers.push(offer); 
localStorage.setItem('offers', JSON.stringify(offers)); 
+0

도움을 주셔서 감사합니다. 나는 definitley 점점 가까이있어 "null 속성의 '밀어 넣기'오류를 읽을 수 없습니다 : ( – DanBeard

+0

예, 처음 null이 및 새 배열을 만들어야합니다. 내 대답을 편집했습니다.이 도움이 되길 바랍니다. –

+0

이제는 속성 정의가 정의되지 않음을 읽을 수 없다고 말합니다. – DanBeard