1
这是我在西纳特拉代码:如何西纳特拉定义AngularJS html5Mode路线
get '/' do
@title = 'AngularJS html5Mode: true'
haml :main
end
而且AngularJS:
angular.module('myApp', ['ngResource']).config(function($routeProvider, $locationProvider) {
$routeProvider.when('/sweets/:id', {
templateUrl: '/sweet.html',
controller: 'SweetCtrl'
}).otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(true);
});
这完美的作品,但/sweets/1
URL刷新页面后,西纳特拉抛出异常,因为URL在AngularJS客户端发生了变化,Sinatra无法找到url路径,这对于Sinatra来说绝对是正确的行为。现在的问题是如何处理Sinatra中的这种类型的异常?我应该定义哪条路线?请注意,我仍然需要Sinatra在其他情况下抛出异常。
谢谢你的回答!对我来说,这是代码的重复,这在将来似乎很难维护。有什么方法可以同时使用它们吗? – hawk
@hawk您可以使用星号代替:id请参阅http://www.sinatrarb.com/intro.html – basarat