0

xhr リクエストのチェックを修正し、無限ループを修正しまし

get '/about' do
    erb :about, layout: !request.xhr?
end

angular js と sinatra を使用してページを作成しています。Angular がルートを処理し、テンプレートを呼び出しています

app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider.
        when('/home', {templateUrl: '/home'}).
        when('/about', {templateUrl: '/about'}).
        when('/work', {templateUrl: '/work'}).
        when('/blog', {templateUrl: '/blog'}).
        when('/contact', {templateUrl: '/contact'}).
        otherwise({redirectTo: '/'});
}]);

/#/blogに移動すると、テンプレートが正常に読み込まれます。コンテンツはシナトラによって提供されています

get '/blog' do
    'This is the work page!'
end

ただし、aboutページを実行すると、ビューが無限にロードされます。Aboutページは

get '/about' do
    erb :about
end
4

1 に答える 1

0
get '/about' do
    erb :about, layout: !request.xhr?
end

前のコードは、Angularjsコードを含むレイアウトをロードします。jsコードが/aboutを再度呼び出し、それが繰り返されました。Angular jsルートからの呼び出しはxhrであるため、チェックすると問題が修正されました。

于 2013-03-09T03:48:56.327 に答える