在我正在处理的应用程序中,我需要添加一些过滤器,例如:approved, with documents, with documents approved和其他一些。所有这些过滤器都是基于PHP控制器(我使用Symfony2)对DB执行的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)
));
}
在你的twig文件中你可以输入类似
的内容<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>
您还需要将开始和结束符号更改为不同的东西(如{[{
和}]}
)现在需要定义一个sortData
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;
});
你可以在Angular filter
我建议通过Symfony在DB中排序数据,Symfony更快,在角输出中只是转储数据