2014-02-27 6 views
1

나는이백본에서 모델 URL의 쿼리 문자열을 보간 중입니다. 어떻게 그만합니까?

처럼 보이는 백본 모델 ...

var Address = Backbone.Model.extend({ 
     urlRoot: '/address/' 
    }); 

    return { address: Address } 

}); 

나는 형태의 주소를 출력 템플릿을 가지고 있습니다. 템플릿은 'render'함수에 주소 id가 전달 된 뷰에 의해 렌더링됩니다. 이 'address/: id'와 같은 경로가보기에 도달했습니다.

뷰는 다음과 같습니다

var AddressView = Backbone.View.extend({ 
     el: $('#myclass'), 

     render: function(options) { 
     var that = this; 

     var addr = new A.address({id: options.aid}); 

     addr.fetch({ 
      reset: true, 
      success: function(address) { 
       var template = _.template(ATemplate, {address: address}); 
       that.$el.html(template); 
      } 
     }); 

     return this; 
     }, 

     events: { 
     'submit .edit-address-form': 'editAddress' 
     }, 

     editAddress: function(ev) { 

     //serializeObject creates JSON object from form data 
     var addressDetails = $(ev.currentTarget).serializeObject(); 

     addr.save(addressDetails, function(addr) { 
      R.router.navigate('', {trigger: true}); 
     }); 
     return false; 
     } 
    }); 
    return { 
     addressView: new AddressView() 
    }; 

});

두 가지 문제점이 있습니다. 첫 번째 문제는 클래스 이름이 정확하고 버튼 유형 =이 '제출'이지만 'editAddress'함수가 호출되지 않는다는 것입니다.

내가 주소가 쿼리 문자열이 기본 URL 및/#/주소 사이에 보간되는 URL이 깨져 형성 제출할 때 두 번째 문제는

HTTP 같이이다 : /// ldmanclient/주소 = 2500 + 모 피트 + 라이브러리 & 주소 2 = 대학 + +의 캘리포니아 % 2C + 버클리 & 도시는 = 버클리 & 우편 번호 = 94720 & mailcode = 6000 & 지원 = 1 #/주소/1

사람은 이전에 이러한 유형의 행동을 본 적이 있습니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

혹시이 문제를 파악 했습니까? – Sean

답변

0

뮤가 말했듯이 백본이 도착하기 전에 양식이 표준 방식으로 제출됩니다. 제출 작업을 방지하십시오.

editAddress: function(ev) { 
    ev.preventDefault(); 

    // same code as above 
    }