Backbone.js는 않는, 그 Backbone.router 객체에 대한 navigate(fragment, [options])
방법을 제공 (문서 당) 다음백본 라우터 = 거짓 옵션
응용 프로그램에서 지점에 도달 할 때마다 URL로 저장하려면
navigate
으로 전화하여 URL을 업데이트하십시오. 경로 기능을 호출하려는 경우trigger
옵션을true
으로 설정하십시오. 브라우저 기록에 항목을 만들지 않고 URL을 업데이트하려면replace
옵션을true
으로 설정하십시오.
따라서 appRouter.navigate('page');
을 호출하면 아마도 해당 경로를 트리거하지 않고 www.myapp.com/page
으로 URL이 변경됩니다. 그러나 라우터가 으로 리디렉션되고 실제로 trigger=false
이라는 사실에도 불구하고 페이지 경로를 트리거한다는 사실을 발견했습니다.
> home route
> page route
을 예상 콘솔 출력 단지되어야 할 때 :
따라서, 다음 코드 www.myapp.com 탐색시
$(function(){
var AppRouter = Backbone.Router.extend({
routes: {
'': 'home',
'page': 'page',
},
home: function() {
window.app.navigate('page', {replace: true});
console.log('home route');
},
page: function() {
console.log('page route');
},
});
window.app = new AppRouter();
Backbone.history.start({pushState: true});
});
는 다음 콘솔 출력을 생성
> home route
이 방법은 기본 trigger
옵션을 따르지 않는 것으로 보입니다. 이것은 구현의 버그입니까, 아니면 내가 오해입니까?
'trigger : false'가 설정된 상태에서 올바르게 작동합니까? – jakee
@jakee : 아니요, 'window.app.navigate ('page ', {trigger : false, replace : true});는 여전히 동일한 동작을 생성합니다. 'window.app.navigate ('page');'도 마찬가지입니다. – Matm
은'Backbone.history.start'에서'pushState : true'를 제거하고 원래의 탐색 호출로 시도합니다. 내가 봤 거든 주위에'pushState : true'와'navigate'가 제대로 작동하지 않을 수 있습니다. – jakee