这是我在Sinatra的代码:
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重新加载页面之后,Sinatra抛出异常,因为AngularJS在客户端更改了url,而Sinatra找不到url路径,这对Sinatra来说是绝对正确的行为。现在的问题是如何在Sinatra中处理这类异常?我应该定义哪条路线?请注意,我仍然需要Sinatra在其他情况下抛出异常。
答案 0 :(得分:1)
您需要允许sinatra中的所有路线与角度路线配置相同。所以,
get '/' do
@title = 'AngularJS html5Mode: true'
haml :main
end
get '/:id' do
@title = 'AngularJS html5Mode: true'
haml :main
end