在我正在处理的应用程序中,我需要添加一些过滤器,例如:已批准,带有文档,已批准文档和其他一些过滤器。所有这些过滤器都基于由PHP控制器执行的对MySQL的MySQL查询(我使用Symfony2),并且该控制器上的函数将返回格式良好的JSON。我的问题是:我可以根据这种行为为AngularJS编写过滤器吗?怎么样? (我的意思是只是为了理解流程的一个小例子)
答案 0 :(得分:1)
我认为你可以通过类似下面的代码来做:
//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>
您还需要将开始和结束符号更改为不同的内容(例如{[{
和}]}
)interpolateProvider
现在您需要定义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中的数据进行排序,速度更快,角度输出只需转储数据