json_encode 在我的 Symfony2 控制器中不起作用

Posted

技术标签:

【中文标题】json_encode 在我的 Symfony2 控制器中不起作用【英文标题】:json_encode doens't work in my Symfony2's controller 【发布时间】:2015-08-29 07:46:48 【问题描述】:

我是 Symfony2 和 AngularJS 的新手。我正在尝试使用 json_encode 来显示我的数据库的内容。但它不起作用。这是我的控制器:

public function catalogonewAction() 

  $data = $this->getDoctrine()->getManager()
    ->getRepository('AcmeRetroBundle:Game')->findAll(); 

  return $this->render('AcmeRetroBundle:Default:catalogonew.html.twig', 
    array('data' => json_encode($data)));

这是我的 html.twig:

% verbatim %
<div ng-app="myApp1" ng-init="mydata =  list|raw ">
<table id="sortedData">
<tr><th>T1</th><th>T2</th></tr>
<tr ng-repeat="data in mydata | filter:sortData">
 <td>data.nombreJuego</td>
 <td>data.description</td>
 </tr>
 </table>
 </div>
 % endverbatim %

还有我的 app.js:

angular.module('myApp1', []).
 filter('sortData', function() 
  alert('Hi');
  return out;
 );

当我刷新我的页面时,它会显示如下: T1 T2 data.nombreJuego data.description

怎么了?

【问题讨论】:

看起来 javascript 错误阻止了 angularjs 引导,检查控制台并添加错误输出 问问自己逐字的意思。混合 Angular 模板和 Twig 模板至少可以说是令人沮丧的。 好的。我修复它。我更改了控制器中的所有代码并逐字删除。我使用 InterpolateProvider。 【参考方案1】:

我不喜欢将数据从后端传递到 anuglarJS 那样,使用 ajax 请求获取数据是很常见的。

尝试将您的数据传递给您可能影响的 javascript 变量,即您的角度范围内的对象:

     <script>
           var list=  data  
     </script>     
     % verbatim %
           <div ng-app="myApp1" ng-init="mydata = list">
           <table id="sortedData">
            <tr><th>T1</th><th>T2</th></tr>
            <tr ng-repeat="data in mydata | filter:sortData">
              <td>data.nombreJuego</td>
              <td>data.description</td>
            </tr>
           </table>
          </div>
     % endverbatim %

【讨论】:

以上是关于json_encode 在我的 Symfony2 控制器中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Json_encode 改变我的查询顺序

在 symfony2 中使用资产的源映射

Symfony2 中的搜索框与 Solr

如何从 Symfony2 config.yml 读取配置设置?

Symfony2:使用两个不同的用户提供程序登录网站时无法模拟用户

PHP数组到javascript循环与json_encode [关闭]