2014-04-13 85 views
2

我開始用laravel構建一個新的應用程序,並決定嘗試angular.js。 因此,我將使用一種混合方法,其中登錄是在角度外進行的,然後我有一個主頁,我想使用角度加載模板。Laravel + Angular - Page not loading

我被困在裝載角度的視圖部分。控制檯中沒有顯示錯誤,模板也沒有加載。

這是我的routes.php文件文件:

// Login routes here 
    ...  
// Routes protected by auth filter 
Route::group(['prefix' => 'admin', 'before' => 'auth'], function(){ 

    Route::get('/', '[email protected]'); // Main Page 
    Route::resource('documents', 'DocumentsController'); 

}); 

應用程序/視圖/管理/佈局/ master.blade.php文件:

<html ng-app="intern"> 
<head> 
    ... 
</head> 
    <body> 

    <div ng-view=""></div> 

    {{ HTML::script('js/vendor/angular.min.js') }} 
    {{ HTML::script('js/vendor/angular-route.min.js') }} 
    {{ HTML::script('js/admin/app.js') }} 
    {{ HTML::script('js/admin/controllers/documentsController.js') }} 

    </body> 
</html> 

公共/ JS /管理/ app.js

'use strict'; 
var intern = angular.module('intern', ['ngRoute'], function($interpolateProvider) { 
    $interpolateProvider.startSymbol('<%'); 
    $interpolateProvider.endSymbol('%>'); 
}); 

intern.config(function($routeProvider) { 
    $routeProvider 
    // route for the home page 
    .when('/admin', { 
     templateUrl : 'app/views/admin/documents/index.php', 
     controller : 'documentsController' 
     }); 

    $routeProvider.otherwise({templateUrl:'app/views/admin/documents/index.php'}); 
    }); 

公共/ JS /管理/控制器/ documentsController.js(這沒有什麼太多現在)

intern.controller('documentsController', ['$scope', function(scope){ 

}]); 

,最後我的模板: 應用程序/視圖/管理/文件/ index.php文件

<div> 
    <h1>index documents</h1> 
</div> 

我究竟做錯了什麼?如果你們需要更多的信息,請告訴我。 在此先感謝:)

回答

1

您必須將您的templaes放置在公用文件夾中,因爲應用程序文件夾無法通過瀏覽器的請求訪問。或者你可以寫爲模板的路徑(這是不是在我看來推薦)

反正你應該看到在你的網絡控制檯(404)錯誤導致模板不能被加載

+0

你是對的。謝謝。還有一件事,你如何看待這種登錄與角度分離的方法?我可以根據角色訪問使用laravel過濾器訪問使用angular.js加載的頁面的用戶嗎?再次感謝你Fuzzyma。 –

+0

我僅在2周前使用了這種方法,因爲我只是喜歡auth-Methods laravel提供的方法。我不認爲它真的很重要,但我仍然喜歡用php做登錄。爲了保護受限制的內容,您必須牢記,所有從服務器獲取數據的請求都會通過laravel路由和過濾器進行限制。由於原始視圖很少有受限的數據,因此可以將視圖存儲在公用文件夾中。 – Fuzzyma

+0

感謝您的建議。你真的幫了很多。 –