¿Hay algún método para detectar la ruta inválida (o indefinida) y activar la página 404 en Backbone.Controller?Cómo detectar ruta no válida y función de disparo en Backbone.Controller
He definido rutas en mi controlador de esta manera, pero no funcionó.
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"
ACTUALIZACIÓN:
que utiliza el constructor de Backbone.Controller para que coincida con el fragmento de hash actual y @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"
Si ha resuelto su problema, responda su propia pregunta. – Raynos
La sugerencia es reescribir su pregunta para que solo contenga la pregunta y luego proporcione su propia respuesta. Por lo tanto, omita la respuesta en la pregunta. Puede encontrar que alguien tiene una mejor manera de responder a su pregunta si no proporciona la respuesta de inmediato. –
Sí, su sugerencia es correcta. ¡Gracias por compartir al respecto! – tomodian