0

저는 backbone.js에서 새로 왔습니다. 내 로컬 저장소에 데이터를 저장하고 검색하려면 어떻게해야합니까? jeromegn의 Backbone.localStorage을 사용하고 있는데 왜 localstorage에 추가하거나 저장할 수 없습니까?Backbone.js를 사용하여 localStorage에 데이터를 저장하는 방법

여기 내 컬렉션의 :

var Cases = Backbone.Collection.extend({ 
    localStorage: new Backbone.LocalStorage('dataObject'), 
}); 

여기에 내 생각이다 :

var CreateCase = Backbone.View.extend({ 
    el: '.case', 
    render: function(){ 
     var template = _.template($('#create-case-view').html(), {}); 
     this.$el.html(template); 
    }, 
    events: { 
     'submit #caseForm': 'createCase', 
     'click .back': 'returnBack', 
     'focus #c_round': 'datePicker' 
    }, 
    createCase: function(e){ 
     var caseDetails = $(e.currentTarget).serializeObject(); 
     var cases = new Cases(); 
     //console.log(caseDetails); 
     cases.add(caseDetails, { 
      success: function(cases){ 
       console.log(cases); //I CAN'T ADD/SAVE IT TO THE COLLECTION 
       //router.navigate('', {trigger: true}); 
      } 
     }); 
     return false; 
    } 
    }); 

사용자가이 컬렉션에 추가해야합니다 양식을 제출합니다.

컬렉션에서 어떻게 검색 할 수 있습니까? 나는 cases.fetch()를 사용했다. 그러나 아무 데이터도 없다.

답변

3

Collection.add 기능에 대한 success 콜백을 허용하는 백본 버전을 인식하지 못했습니다. 코드를 기반으로 대신 Collection.create 함수가 필요하며 모델을 추가 할뿐만 아니라 저장 (즉, 동기화 수행)합니다.

var Cases = Backbone.Collection.extend({ 
    localStorage: new Backbone.LocalStorage('dataObject'), 
}); 

var cases = new Cases(); 

cases.create({caseNo: 1, caseName: 'another case'}, { 
    success: function(caseModel){ // note, this is the model 
     console.log(caseModel); 
    } 
}); 

여기에 직접보기 : https://jsfiddle.net/vbj2ouey/1/ (샌드 박스에 만 JSFiddle에서 일 때문에)

+0

감사합니다! 내가 사용한 localstorage에 저장된 데이터를 검색하려면 어떻게해야합니까? 내가 만들 때마다 localstorage에서 데이터를 푸시하고 싶습니다. 그럴 수 있습니까? – p3ac3

+0

아, 알아 냈어! 감사합니다. 지금은 너무 행복합니다. – p3ac3