Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了休息 – Symfony2和单页面应用程序使用像AngularJS这样的框架大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
(如果这不是发布这种问题的正确的地方,我会很高兴地在其他地方发布)

我正在尝试构建一个交互式Web应用程序来管理公司资源。
我有Symfony2的经验,但我用这个新的应用程序打了墙。

我想使这个应用程序在客户端相当互动。几乎完整的单一网页应用程序。
我以前的Web应用程序通常只会使用具有CRUD页面的典型MVC模式。

在这些简单的应用程序中,我会有

/employees/
/employees/create
/employees/detail/45
/employees/update/45
/employees/delete/45

在这种应用中使用symfony会给我很多的优势:

>路由
>安全(CSRF令牌)
> FormTypes和Form处理
>验证
>与学说融合
>枝

特别是在Twig中这样的功能非常清爽(因为我的模型被构建为Doctrine实体):

<p>{{ employee.getCurrentTask().description }}</p>

我现在面临的问题是,我觉得Symfony2并不是真正为单一网页应用程序构建的。一旦我尝试添加一些Ajax功能,我遇到了这些问题:

> CSRF令牌无效
> jQuery中不可重复使用的视图/表示逻辑
>在html中添加数据属性获取id等等…

然后我看着Knockout.js和Angularjs,但是我觉得失去了教条和枝条的所有优点。我必须在客户端重建我的模型,并且必须在两个不同的位置保持它们。

所以我想出了这个想法:

>使用Symfony2模型和控制器将数据保存到数据库,但是让symfony中的控制器只发送JSON并接收JSON(FOSRestBundle可能?)
>使用像AngularJS或KnockoutJS这样的框架在客户端重建JSON数据,以使用双向绑定。

但是,如何处理问题,如Doctrine2关系,表单验证,Symfony已经解决的CSRF,但如果我使用前端js框架,则无法使用?

欢迎所有的建议!

关于JSON,序列化和模型的一些话

西蒙,我面临着同样的问题和问题。首先喜欢肯已经提到过。您不需要重建任何模型。更好地使用FosRestBundle和/或JMS serializer。它将关系转换成JSON对象。这个对象通过api传输到你的前端,你可以像在twig一样使用它们,当你使用这样的angular.js

{[{ user.username }]}

与树枝一样。但请记住,您必须为角度设置自定义括号,因为认情况下它使用与twig相同。

路由

你谈论一个单一的页面应用程序,所以symfony的路由保持在一个低的水平,几乎没有刷新页面。相反,您必须使用前端框架的路由,因为我只熟悉angular.js,我给出了一个有角度的例子:

app.config(function($routeProvider,$interpolateProvider) {

    //here you go,custom brackets
    $interpolateProvider.startSymbol('{[{');
    $interpolateProvider.endSymbol('}]}');

    $routeProvider.when('/user',{
        controller: UserController,templateUrl: RoutIng.generate('suser_list')
    }).when('/ticket',{
        controller: TicketController,templateUrl: RoutIng.generate('ticket_list')
    });
});

当你打了一个链接

<a href="#/ticket">Go to tickets</a>

AngularJ将知道要触发的前端控制器。很好的东西,没有页面重新加载。还可以看看FosJSRoutingBundle.它允许您在javascript中生成symfony路由,我使用它们将js控制器与数据推入的html模板进行链接

FormTypes,Form处理,验证

那么当你使用像cornerjs这样的前端框架时,你的symfony表单类型是无用的。但我不确定记住数据是通过api推送和拉出来的,我认为这对于形式类型来处理这种混杂是一件困难的事情。

对于验证,您可以使用angular的实时验证,或者在后台使用symfony的验证,没有问题。使用客户端和服务器端验证可能是一件好事。

枝条

树枝脱离了比赛。所有数据都在客户端呈现,而不是像服务器一样在服务器端渲染。但是,如果您的应用程序确实是单页应用程序,那只是这种情况。当然,你可以使用twig,但只有重新加载整个页面时才会刷新。

与教义融合

您仍然可以在后台使用原则。你有关于教义和SPA的具体问题吗?

大佬总结

以上是大佬教程为你收集整理的休息 – Symfony2和单页面应用程序使用像AngularJS这样的框架全部内容,希望文章能够帮你解决休息 – Symfony2和单页面应用程序使用像AngularJS这样的框架所遇到的程序开发问题。

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

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