저는 AppRouter와 컨트롤러가 있습니다. 가 가능하다 (브라우저의 URL 표시 줄에없는) 문자열 #foo/123
을 갖는 지금이 링크 <a class="myLink" href="#foo/123">link</a>
에 나는 브라우저의 URL이 변경 될 수 원하는, 그래서URL 해시 문자열이 주어지면 지정된 컨트롤러 메소드를 해결하도록 AppRouter에 요청하십시오.
$('.myLink').click(function (evt) {
evt.preventDefault();
// do something else
// ...
var href = $(this).attr('href'); // #foo/123
// now I want to use AppRouter/Controller to do as they are designed to.
});
var MyRouter = Backbone.Marionette.AppRouter.extend({
appRoutes: { "foo/:id": "doFoo" }
});
App.on('before:start', function() {
App.router = new myRouter({
controller: new myController()
});
});
질문하지 않는다 라우터에 컨트롤러 방법 doFoo
을 해결하도록 요청 하시겠습니까?
doFoo
이라고 말하지 않고 라우터에 직접 doFoo
을 호출하도록 지시 하시겠습니까?
'handler.route' 메소드가 필요합니다. 이제 사용할 핸들러, 콜백을 실행하는 방법을 찾을 수 있습니까? [1]은 true를 반환하지만'Backbone.history.handlers [1] .callback()'은 오류를줍니다 :'null 'of'slice '속성을 읽을 수 없습니다 –
아마도 올바른 인수를 핸들러에 전달하지 않을 것입니다. –
나는 더 많은 것을 요청할 수 있습니다 :'Backbone.history.handlers [the_index] .callback (the_id)'는 원래 질문에서'doFoo'를 호출하는 좋은 방법입니까? –