json动态菜单和路由

时间:2015-02-05 09:06:31

标签: javascript php json angularjs

我会从json文件加载我的menù并动态添加路由;我尝试这个代码,但不工作: 当我加载这个菜单..我会用angularjs的ui-routing创建动态路由;提前致谢。马可。

setup.js.php

<?php
  session_start();
  $menu = file_get_contents("layout/menu/mymenu.json");

  header("content-type: application/javascript");
 ?>

 angular.module('erp.Setup', []).constant('Setup', {
    username:    '<?php print USER_NAME; ?>',
    menu:      '<?php print $menu; ?>'   <---- Uncaught SyntaxError:   Unexpected token ILLEGAL
 });

我的json:

{
  "menu": {
     "_id": "menu_1",
       "item": [
        {
          "title": "Test item1",
          "subtit": "Subtitle 1",
           "color": "red",
           "icon": "fa-menu",
           "link": "#/m_item1"
        }
       ]
   }
}

1 个答案:

答案 0 :(得分:0)

对于你的解决方案,我相信'&lt;?php print $菜单中的引号; ?&GT;”正在使它成为一个字符串,所以你需要注意Json的格式。

此外,这是我为测试应用程序创建的示例导航。希望这可以帮助你: -

我的指示: -

var todoApp = angular.module("todoApp",[]);

todoApp.directive('ngNavPills',function(){
var dtv={};

dtv.restrict='A';
dtv.replace=true;
dtv.scope={ ngModel:'=' };
dtv.template='<ul class="nav nav-pills"><li ng-repeat="itm in ngModel" role="presentation"><a ng-href="{{itm.link}}">itm.name</a></li></ul>';
dtv.link= function($s,$e,$a){

}
return(dtv);
});

我的导航Json: -

[{"name":"Home","link":"/Index.html"},{"name":"Index2","link":"/Index2.html"},{"name":"Index3","link":"/Index3.html"}]

用法: -

<div ng-nav-pills></div>