Как обнаружить недопустимый маршрут и функцию триггера в Backbone.Controller

Есть ли какой-либо метод для обнаружения недопустимого (или неопределенного) маршрута и запуска страницы 404 в Backbone.Controller?

Я определил маршруты в своем контроллере таким образом, но это не сработало .

class MyController extends Backbone.Controller
    routes:
        "method_a": "methodA"
        "method_b": "methodB"
        "*undefined": "show404Error"

    # when access to /#method_a
    methodA: ->
        console.log "this page exists"

    # when access to /#method_b
    methodB: ->
        console.log "this also exists"

    # when access to /#some_invalid_hash_fragment_for_malicious_attack
    show404Error: ->
        console.log "sorry, this page does not exist"

ОБНОВЛЕНИЕ:

Я использовал конструктор Backbone.Controller для сопоставления текущего хеш-фрагмента и @routes.

class MyController extends Backbone.Controller
    constructor: ->
        super()
        hash = window.location.hash.replace '#', ''
        if hash
            for k, v of @routes
                if k is hash
                    return
                @show404Error()

    routes:
        "method_a": "methodA"
        "method_b": "methodB"
        "*undefined": "show404Error"

    # when access to /#method_a
    methodA: ->
        console.log "this page exists"

    # when access to /#method_b
    methodB: ->
        console.log "this also exists"

    # when access to /#some_invalid_hash_fragment_for_malicious_attack
    show404Error: ->
        console.log "sorry, this page does not exist"
8
задан David Murdoch 1 June 2012 в 20:22
поделиться