2013-10-18 5 views
1

Jade에 문제가 있고 렌더링시 데이터가 전달되는 방식에 문제가 있습니다.JavaScript 및 Jade를 사용하여 localStorage에 추가

[{key1: "val1", key2: "val2"}, ...}]; 형식의 데이터를 저장하려하지만 아래 결과로 표시되는 문제가 있습니다.

결과

key: xyz value:[{"artist":"Lady Gaga",... 

이 내가 잘 그것을 통과하는 서버 측 Node.js를에 함께 일하고 코드입니다 ...

res.render('musics', { 
    title: 'site', 
    result: JSON.stringify(result) 
}); 

이 나는 ​​데 코드가 문제는 내가 옥에서 결과를 호출해야하기 때문에 ...

script 
    function local (arr) { 
     var i; 
     i = "#{result}"; 
     localStorage.setItem('xyz', i); 
    } 
    console.log('stored'); 
    local(); 

결과 주위의 따옴표는 그것을 w 업하지만 w 그들없이 나는 예기치 않은 식별자에 대해 오류가 발생합니다 ...

어떤 제안이든 백본 (내가 클라이언트 측에서 사용하고있는 것입니다)을 통해 아약스 경로를가는 것이 더 나을지 모르겠지만, 나는 기꺼이합니다. 일부 포인터를 꺼내려면 - 데이터가 긁히고 양식 포스트가 선택됩니다. 따라서 데이터가 게시물 이후에 나오고 정시에 전송되므로 Ajax 호출을 수행하면 게시물과 얻을, 그렇지 않으면 그것을받는 방법을 잘 모르겠다 ... 어쩌면 res.json (결과) 서버 쪽,하지만 다음 페이지가 어떻게 든 렌더링해야 ... 제안을 엽니 다. 감사! 궁극적으로 모든 것을 중심으로 "없이 localStorage에 들어가기를 바랍니다.

답변

2

당신의 옥 조각이 다음과 같아야합니다!

script!= "(function() {localStorage.setItem('xyz',JSON.stringify(" +result + ");})();" 

를 사용하여 = 당신은 다음과 같은 내용을 탈출하지 옥을 얘기하고, 클라이언트 측에 당신은 당신의 데이터를 퍼 팅하기 전에 다시을 캐릭터 라인 화해야 로컬 저장소.

localStorage 따라서, @에 greelgorke의 대답에 삽입하기 전에 stringified이어야 localStorage 필요로 항목을 밀어

script!= "(function() {var items = []; items = JSON.parse(localStorage.getItem('Stored_items')); console.log(JSON.stringify(items)); items.push(" + JSON.stringify(product) + "); localStorage.setItem('Stored_items', JSON.stringify(items)); })();" 

여하튼 JSON 어레이위한 @ greelgork의 답변에 대한 개선으로서

0

다음과 같이 수정해야합니다 :

단일 항목

script!= "(function() {localStorage.setItem('xyz',JSON.stringify(result)); })();" 

는 그래서 JSON.stringify이 내가 내 프로젝트에서 사용하는 것입니다
, 다른 모든 javascript 코드는 단지처럼 string 외부이며 WORX

신용Push JSON Objects to array in localStorage

관련 문제