2014-04-13 86 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

感谢您的建议。你真的帮了很多。 –