我正在尝试构建一个包含子菜单的菜单,每个子菜单都以我的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字符串中使用这个角度变量?
答案 0 :(得分:0)
你不能这样做。我想你想在php脚本中使用angular {{controllerName}}变量。它不会起作用,因为首先是php,然后是浏览器,然后是javascript。所以流程看起来像:请求服务器,php生成html并发送回来,浏览器解释什么是php发送和渲染网站,当网站呈现角度开始工作时。
你可以尝试做这样的事情:
$http.get('pathToYourScriptWhichRenderWhatUWant?controller='+{{controllerName}}).success(function(data) { // attach data to DOM })
但更好的方法是将所有模板保留在前端,只从后端请求数据,如果你有角度,你不需要在后端保留和生成html:)