Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Laravel 4作为RESTful后端的AngularJS大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试构建一个Web应用程序,它应该在客户端使用Laravel作为RESTful后端API和AngularJS。
我在Stackoverflow上发表了关于这个问题的所有其他帖子,但是没有人肯定会回答我的疑惑,至少我没有找到一个明确的源代码示例。

例如…

我应该开发两个完全不同的应用程序,后端与Laravel和另一个纯粹的客户端,AngularJS?
在这种情况下:如何通过单个域(或虚拟主机)来处理它们?

或者我应该在Laravel中创建AngularJS模板,在“views”文件夹中,从他们那里调用Laravel服务?我怀疑这是最好的方法在这种情况下,后端并不能完全脱离前端实现。

另外,如何正确处理路由?我的意思是:我想从AngularJS路线管理菜单/页面导航,只需要调用Laravel来检索数据并填充我的意见。
按照这篇文章(Angular JS + Laravel 4: How to compile for production mode?)的建议移动“公共”文件夹可能有帮助吗?

Thanx提前提出建议,例子…

最后,我发现一个工作的解决方案,在我的场景中完美,不需要一个子域名。
在这种情况下,Laravel独家作为RESTful Web服务,无服务器端视图或模板:表示层完全需要AngularJS。

假设我有两个完全解耦的应用程序(FE e WS)在同一根文件夹中:

root
|__fe
|__ws

我在Apache httpd-vhosts.conf文件下@L_944_22@了虚拟主机设置,方法如下:

<VirtualHost *:80>
    ServerName myapp.com
    DocumentRoot "\www\root\fe"

    alias /ws "\www\root\ws\public"
    <Directory "\www\root\ws\public">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
            Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

然后我将“RewriteBase / ws”添加到我的laravel / public / .htacces文件中:

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteENGIne On

    RewriteBase /ws

    RewriteCond %{requEST_FILename} !-d
    RewriteCond %{requEST_FILename} !-f
    RewriteRule ^ index.PHP [NC,L]
</IfModule>

这样我可以在浏览器中写(例如)

http://myapp.com             (AngularJS client side root)
http://myapp.com/ws/users    (RESTful service endpoint for "users")

然后定义一个客户端,AngularJS路由如下:

app.config(function($routeProvider) {
    $routeProvider
        .when('/',{Controller: 'HomeController',templateUrl: 'templates/home.html'})
        .when('/users',{Controller: 'UsersController',templateUrl: 'templates/users.html'})
        .otherwise({redirectTo: '/'});
});

通过这种方式将其链接到RESTful资源:

app.factory('User',function($resourcE) {
    return $resource('http://myapp.com/ws/users');
});

app.controller('UsersController',function($scope,User) {
    $scope.title = "Users";
    $scope.users = User.query();
});

我启用了HTML5历史记录API,添加此行来配置我的Angular应用程序:

$LOCATIOnProvider.html5Mode(true);

与(在index.html头部分内)一起)

<base href="/" />
<Meta name="fragment" content="!" />

因此,解决诸如浏览器页面刷新,深层链接或直接页面书签等问题的最后一个要求是将.htaccess文件添加到包含Angular应用程序的文件夹的根目录中:

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteENGIne On

    RewriteCond %{requEST_FILename} !-d
    RewriteCond %{requEST_FILename} !-f
    RewriteRule ^ index.html [NC,L]
</IfModule>

希望有帮助!

大佬总结

以上是大佬教程为你收集整理的Laravel 4作为RESTful后端的AngularJS全部内容,希望文章能够帮你解决Laravel 4作为RESTful后端的AngularJS所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。