使用角度变量渲染ZF2部分

时间:2015-02-06 09:50:26

标签: php angularjs zend-framework2

我正在尝试构建一个包含子菜单的菜单,每个子菜单都以我的Zend控制器命名。我的角度MenuController包含这个数组:

$scope.controllerNames = ['controller1', 'controller2', 'controller3'];

在我看来,我想为这些控制器的每个控制器渲染一个Zend部分:

<div ng-repeat="controllerName in menuCtrl.controllerNames">                
    <div id="submenu-{{controllerName}}">
        <?php echo $this->partial('path/to/zend/partial/{{controllerName}}.phtml') ?>
    </div>
</div>

我得到了正确的div id(例如“submenu-controller1”),但我似乎无法访问PHP块中的{{controllerName}}变量。我也尝试使用ng-include,但部分不是应用程序的公共文件夹的一部分。

有没有办法在PHP字符串中使用这个角度变量?

1 个答案:

答案 0 :(得分:0)

你不能这样做。我想你想在php脚本中使用angular {{controllerName}}变量。它不会起作用,因为首先是php,然后是浏览器,然后是javascript。所以流程看起来像:请求服务器,php生成html并发送回来,浏览器解释什么是php发送和渲染网站,当网站呈现角度开始工作时。

你可以尝试做这样的事情:

$http.get('pathToYourScriptWhichRenderWhatUWant?controller='+{{controllerName}}).success(function(data) { // attach data to DOM })

但更好的方法是将所有模板保留在前端,只从后端请求数据,如果你有角度,你不需要在后端保留和生成html:)