2015-08-15 87 views
2

在使用上Laravel的頂部AngularJS,假設我在Laravel此路線:

Route::get('/admin/', function() { return View::make('pages.writer'); }); 

這使得一個觀點,即負載AngularJS組件,包括$routeProvider,並且該配置是這樣所以:

$routeProvider.when('/writer/:publicationName?', { 
    templateUrl: '/templates/writer.html', 
    controller: 'WriterCtrl', 
    caseInsensitiveMatch: true 
}).otherwise({ 
    templateUrl: '/templates/library.html', 
    controller: 'LibraryCtrl' 
}); 

如果我所說的網址:/admin/writer/My-Favorite-Publication,我得到一個Laravel錯誤,因爲路線不存在。有沒有辦法告訴Laravel何時Angular路由接管了特定的URL(即/admin/之後的任何內容),以便我可以使用$routeParams

+0

你啓用了'html5mode'嗎? –

+0

@PankajParkar是的我有 – greener

+0

我認爲把''放在你的html head標籤上可以解決問題 –

回答

2

您需要定義一個包羅萬象的路線將返回運行AngularJS應用程序的基本視角,讓AngularJS處理路由的其餘部分。

這將這樣的伎倆:

Route::get('/admin/{ignore?}', function() { 
    return View::make('pages.writer'); 
})->where('ignore', '.*'); 

這將使與/管理匹配這個Laravel路線開始一切。

+0

啊非常感謝! – greener