2011-09-22 6 views
30

내 "보기"가 아래와 같이 설정됩니다. 단순한.Backbone.js -보기에서 "클릭"이벤트 후 경로로 이동

var ItemView = Backbone.View.extend({ 
    tagName : "li", 

    events : { 
    "click" : "display" 
    }, 

    display : function() { 
    //app.navigate('item'); // take me to my route! 
    } 
}); 

그리고 내 라우터

이제
var App = Backbone.Router.extend({ 

    routes: { 
    "" : "index", 
    "item" : "view_item" 
    }, 

    index: function() { 
    alert('hi!'); 
    }, 

    view_item: function() { 
    alert('bye!'); 
    } 
}); 

app = new App(); 
Backbone.history.start(); 

, 내가 ItemView를 클릭하면, 그것은 "디스플레이"방법을 실행해야하고 난 표시 방법은 내가 경로에 지정된 경로에 저를 먹고 싶어 "목".

이것이 가능합니까? 나는 "탐색"기능이 작동한다고 생각했지만 그렇지 않습니다. 내가 어떻게 이걸 얻을 수 있니?

답변

49
display : function() { 
    app.navigate('item', true); 
    } 

두 번째 매개 변수를 true로 설정해야합니다.

navigaterouter.navigate (단편, [triggerRoute]) 당신은, URL로 저장하기 위해 이동 전화하고 싶은 응용 프로그램의 지점에 도달 할 때마다 : 백본 문서에서

URL을 업데이트하십시오. route 함수를 호출하려면 triggerRoute를 전달하십시오.

+7

'app.navigate ('item ', {trigger : true});' – Daan

+3

범위에 'app' 라우터가없는 경우, 'Backbone.history.navigate (url, options)'를 사용할 수 있습니다. – LeeGee

0

"<> 태그를 사용하는 경우 html에서 직접 처리 할 수 ​​있습니다.

예 : 물론 가능한 경우 그것은 또한 작동

<a href="#item">Show Itens</a> 

, 나는이 방법을 선호합니다.

관련 문제