2010-12-20 1 views
8

Возможно ли определить маршрут общего маршрута или маршрут ошибки в Sammy.js? Я знаю, что могу связываться с «ошибкой», но если не соответствует маршрут, который, похоже, не срабатывает.Пути поиска или ошибки в Sammy.js

Спасибо!

ответ

9

Согласно documentation for Sammy routes,

Дорожки могут быть определены как строки или регулярных выражений.

Как таковая, она должна быть возможность создать маршрут, как это, в конце вашего маршрута, то есть всеобъемлющая:

get(/.*/, function() { 
    ... 
}); 
+1

minor point - обратите внимание на отсутствие кавычек, это буквальное регулярное выражение. '/.*/' сильно отличается от /.*/ –

+0

. Одна из проблем с этим подходом заключается в том, что ваш маршрут поймает даже ссылки, которые будут перемещаться от вашей страницы. Вы, вероятно, этого не хотите. – jpbochi

+0

В моем тестировании с помощью одностраничного приложения это работало и не запускалось при переходе на другую страницу. –

23

Вы должны переопределить функцию notFound.

Как это:

var app = $.sammy('#app', function() { 
    this.notFound = function(){ 
    // do something 
    } 
}); 

Это recommended автором Сэмми.

+1

Это должен быть принятый ответ. – Brandon

+0

Это подходит для реализации события 404 Not Found, но в качестве универсального маршрута это не так практично, потому что 'this' будет' Application', а не 'EventContext'. Таким образом, таких свойств не будет, как 'path' и' params'. –

Смежные вопросы