0

버튼을 클릭하면 사용자를 다른 페이지로 리디렉션하고 싶습니다. 여기 코드는 다음과 같습니다Backbone.js 클릭 이벤트 처리기 : 매개 변수가있는 방아쇠 경로

템플릿 :

<button type="button" id="edit-button">Edit</button> 

라우터 :

App.Router.Accounts = Backbone.Router.extend({ 
    routes: { 
     'accounts/:accountID/audience/edit' : 'editAudience' 
    } 
}); 

보기 :

router: new App.Router.Accounts(), 

events: { 
    "click #edit-button": "redirectToEdit" 
}, 

redirectToEdit: function(){ 
    url = "accounts/"+this.account_id+'/audience/edit'; 
    this.router.navigate(url, { 
     trigger: true, 
     replace: true 
    }); 
} 

하지만 오류 얻을 :

Uncaught TypeError: Cannot use 'in' operator to search for 'model' in foo123 

여기서 foo123은 계정 ID입니다.

내가 뭘 잘못하고 있니?

+0

'editAudience'의 모양은 무엇입니까? – max

+0

그러면 잠재 고객 모델을 편집하고 저장합니다 ('서버에 저장'). 독립적으로 작동합니다 (경로가 다른보기에서 리디렉션되는 대신 직접 실행되는 경우). 문제가되지 않습니다. 또한 오류 메시지에 따라 라우트 처리기가 트리거되기 전에 오류가 발생합니다. – tldr

답변

1

당신이 Router.navigate 방법을 사용할 수있는 URL 변경하려는 경우 : 당신이 당신의 문자열 연결에 / 누락

App.Router.navigate(url, { 
    // trigger: true/false, 
    // replace: true/false 
}); 

참고.

+0

좋은 캐치! 여전히 동일한 오류가 발생합니다 (탐색하여 질문을 업데이트했습니다). 당신의 솔루션을 잘못 해석 했습니까? – tldr

+0

@tldr 어떤 줄이 그 오류를 던집니까? – undefined

+0

사실, nvm. 쿠키와 기록을 삭제했는데 정상적으로 작동했습니다. 감사! – tldr