基于PHP服务器端请求/响应的AngularJS过滤器

基于PHP服务器端请求/响应的AngularJS过滤器,php,angularjs,symfony,angularjs-filter,Php,Angularjs,Symfony,Angularjs Filter,在我正在处理的应用程序中,我需要添加一些过滤器,例如:approved、with documents、with documents approved和其他一些过滤器。所有这些过滤器都基于PHP控制器(我使用的是Symfony2)对数据库执行的MySQL查询,该控制器上的函数将返回格式良好的JSON。我的问题是:我可以基于这种行为为AngularJS编写过滤器吗?怎么用?(我指的是一个小例子,只是为了理解流程)我认为您可以通过类似于以下代码的方式来完成: //in your symfony con

在我正在处理的应用程序中,我需要添加一些过滤器,例如:approved、with documents、with documents approved和其他一些过滤器。所有这些过滤器都基于PHP控制器(我使用的是Symfony2)对数据库执行的MySQL查询,该控制器上的函数将返回格式良好的JSON。我的问题是:我可以基于这种行为为AngularJS编写过滤器吗?怎么用?(我指的是一个小例子,只是为了理解流程)

我认为您可以通过类似于以下代码的方式来完成:

//in your symfony controll
public function sampleAction() {
   $data = $this->getDoctrine()->getManager()->getRepository('YourBundle:SampleEntity')->findAll()->toArray();
   return $this->render('YourBundle:Views_Path:sampleTwigOutput.html.twig', array(
      'data' = json_encode($data)
   ));
}
在细枝文件中,可以有如下内容

<div ng-init="mydata = {{ data|raw }}"></div>
<table id="sortedData">
  <tr><th>T1</th><th>T2</th></tr>
  <tr ng-repeat="data in mydata | filter:sortData">
     <td>{[{data.name}]}</td>
     <td>{[{data.phone}]}</td>
  </tr>
您可以在


我建议通过Symfony对DB中的数据进行排序,Symfony速度更快,角度输出时只需转储数据

如果使用角度显示数据,则不管数据来自何处
{{obj.myData | myFilter}}
@Lorenzo我不明白你的意思,你能再解释一下你的答案吗?好吧,也许是我不太理解你的问题。你已经知道角度过滤器了吗?角度过滤器用于格式化显示的值啊不,我没有意识到,我想要的更像[这个](),排序可以被过滤,然后有我在问题中提到的选项,这在角度上可能吗?是的,我想你可以做到。您需要创建自己的过滤器来实现这一点。对不起,我也在学习英语。刚开始不是很友好,但功能非常强大。你的代码对我来说很有意义,但我还是很困惑,因为它不仅仅是一个过滤器,现在有四个:“无文档”、“有文档供审批”、“活动”和“非活动”,每个都在Symfony2端调用不同的控制器函数,我没有测试你的代码,但它能满足我的要求吗?我正在使用的解决方案是使用
ng change
,然后在Angular controller中使用
$调用正确的函数。get
很难看,但是是我发现的唯一一个可以应用多过滤器基链接的方法,但是如果我知道你想通过每个过滤器调用另一个ajax,对吗?如果您拥有完整的数据,那么为什么要调用ajax来应用过滤器呢?您可以通过Symfony控制器获取所有数据,并通过Angular JS应用过滤器(或者我可能不正确)。此外,我没有看到您提供的任何代码,所以我只准备了一个简单的示例(我不确定它如何适用于您的项目)
angular.module('MySortModule', []).
  filter('sortData', function() {
    // do all your stuffs to sort the data base on whatever you want
    // set them all to out
    return out;
});