Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS菜单和子菜单通过JSON和Twitter引导_Javascript_Json_Angularjs - Fatal编程技术网

Javascript AngularJS菜单和子菜单通过JSON和Twitter引导

Javascript AngularJS菜单和子菜单通过JSON和Twitter引导,javascript,json,angularjs,Javascript,Json,Angularjs,我对AngularJS是新手。我正在使用Twitter引导进行一个个人项目,以便学习AngularJS。我的数据保存在JSON文件中。项目标题和主菜单链接填充得很好。其中一个链接下有一个子菜单,这是我无法填充的。 我想做的是使用ng repeat加载子菜单。所以基本上我是在处理一个ng重复中的一个ng重复。欢迎任何和所有的提示。 谢谢 我的控制器如下所示: 'use strict'; var app = angular.module('myApp', []); app.controller(

我对AngularJS是新手。我正在使用Twitter引导进行一个个人项目,以便学习AngularJS。我的数据保存在JSON文件中。项目标题和主菜单链接填充得很好。其中一个链接下有一个子菜单,这是我无法填充的。 我想做的是使用ng repeat加载子菜单。所以基本上我是在处理一个ng重复中的一个ng重复。欢迎任何和所有的提示。 谢谢

我的控制器如下所示:

'use strict';

var app = angular.module('myApp', []);

app.controller('NavCtrl', function($scope, $http) {

$http.get('app/content/nav.json').success(function(data) {

    $scope.nav   = data;
    $scope.links = data.links;

    });

});
我的JSON:

{
"projectTitle" : "My Website Title",
"links" : [
    {"name" : "Home", "url" : "/", "className" : ""},
    {"name" : "About", "url" : "/about", "className" : ""},
    {"name" : "Contact", "url" : "/contact", "className" : ""},
    {"name" : "Categories", "url" : "/categories", "className" : "dropdown", "sub" :
        [
            {"name" : "Tech Stuff", "url" : "/techStuff"},
            {"name" : "AngularJS", "url" : "/angularJS"},
            {"name" : "HTML5", "url" : "/html5"},
            {"name" : "Javascript", "url" : "/javascript"},
            {"name" : "jQuery", "url" : "/jquery"}
        ]
    }
]
}
我的HTML:

<div ng-controller="NavCtrl" class="navbar navbar-inverse navbar-fixed-top">
    <div class="navbar-inner">
        <div class="container">
            <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="brand" href="#">{{nav.projectTitle}}</a>
            <div class="nav-collapse collapse">
                <ul class="nav">
                    <li ng-repeat="link in links" class="{{link.className}}">
                        <a href="{{link.url}}" class="{{link.sub && 'dropdown-toggle' || ''}}" data-toggle="{{link.sub && 'dropdown' || ''}}">{{link.name}} 
                            <b ng-show="link.sub" class="caret"></b>
                        </a>
                        <ul class="dropdown-menu" ng-show="link.sub">
                            <li ng-repeat="sub in links">
                                <a href="">{{sub.name}}</a>
                            </li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
    </div>
</div>


将子菜单数据填充模板更改为

<li ng-repeat="subItem in link.sub">
    <a href="{{subItem.url}}">{{subItem.name}}</a>
</li>
  • link.sub
    是当前数据对象的子集合,然后循环遍历子集合的每个项


    如何隐藏
    如果该菜单没有任何子集合?请尝试以下操作:
    ng class=“{'dropdown-menu':w.submenu&&w.submenu.length}