Javascript 嵌套ng重复AngularJS中未定义的错误
我在AngularJS 1.2.0-rc3中遇到了一个非常简单的嵌套ng重复问题 我的控制器中有一个JSON对象,表示菜单结构,如下所示:Javascript 嵌套ng重复AngularJS中未定义的错误,javascript,twitter-bootstrap,angularjs,Javascript,Twitter Bootstrap,Angularjs,我在AngularJS 1.2.0-rc3中遇到了一个非常简单的嵌套ng重复问题 我的控制器中有一个JSON对象,表示菜单结构,如下所示: $scope.menus = [ { title: "menu1", action: "#", menus: [ { title: "submenu1_1", action: "stuff" }, { title: "submenu1_2",
$scope.menus = [
{
title: "menu1",
action: "#",
menus: [
{
title: "submenu1_1",
action: "stuff"
},
{
title: "submenu1_2",
action: "moreStuff"
}
]
},
{
title: "menu2",
action: "#",
menus: [
{
title: "submenu2_1",
action: "awesomeStuff"
},
{
title: "submenu2_2",
action: "moreAwesomeStuff"
}
]
}
]
<div class="navbar">
<ul class="nav navbar-nav">
<li ng-repeat="menu in menus" ng-class="{dropdown: menu.menus}">
<a href="{{menu.action}}" ng-class="{'dropdown-toggle': menu.menus}" data-toggle="dropdown">{{menu.title}}</a>
<ul ng-if="menu.menus" class="dropdown-menu">
<li ng-repeat="submenu in menu.menus">
<a href="{{submenu.action}}">{{submenu.title}}</a>
</li>
</ul>
</li>
</ul>
</div>
我的视图使用此信息创建引导nav
菜单结构,如下所示:
$scope.menus = [
{
title: "menu1",
action: "#",
menus: [
{
title: "submenu1_1",
action: "stuff"
},
{
title: "submenu1_2",
action: "moreStuff"
}
]
},
{
title: "menu2",
action: "#",
menus: [
{
title: "submenu2_1",
action: "awesomeStuff"
},
{
title: "submenu2_2",
action: "moreAwesomeStuff"
}
]
}
]
<div class="navbar">
<ul class="nav navbar-nav">
<li ng-repeat="menu in menus" ng-class="{dropdown: menu.menus}">
<a href="{{menu.action}}" ng-class="{'dropdown-toggle': menu.menus}" data-toggle="dropdown">{{menu.title}}</a>
<ul ng-if="menu.menus" class="dropdown-menu">
<li ng-repeat="submenu in menu.menus">
<a href="{{submenu.action}}">{{submenu.title}}</a>
</li>
</ul>
</li>
</ul>
</div>
我的标记有问题吗?该错误有时出现在页面加载上,并且总是在我单击子菜单时出现(在我的代码中,操作被简单地替换为“#”)。在JSFIDLE中,它总是有效的:该作用域所属的控制器是我的主应用程序所依赖的模块的一部分。它被成功加载,在出现错误之前,我可以在控制台中正确地看到$scope.menus对象。我很困惑。你能想出一个办法吗?目前很难诊断它是否有效。我只是设法找出了问题所在。它与控制器或标记无关。我将with指令放在ng视图中,这导致了一些古怪的行为(它可能被实际模板覆盖)。一个简单的分心,最后。这个问题应该结束了!