当ng重复的内部时,是否可以嵌套ng开关?
<div ng-controller="UserController">
<div ng-switch on="renderPath">
<div ng-repeat="route in routes">
<div ng-switch-when="route.path">
<div ng-include src="route.url"></div>
</div>
</div>
</div>
</div>
当我运行它时,我得到了以下异常:
Error: Argument '?' is required
pa@http://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js:16 ...
<!-- ngSwitchWhen: route.path -->
谢谢!
编辑
我正在努力完成以下
<div ng-switch on="renderPath">
<div ng-switch-when="path1">
<div ng-include src="url1"></div>
</div>
<div ng-switch-when="path2">
<div ng-include src="url2"></div>
</div>
<div ng-switch-when="path3">
<div ng-include src="url3"></div>
</div>
</div>
</div>
所以我想知道我是否可以使用ng-reeat来帮助ne减少上面多余的HTML模板代码(ng切换时)。
更新:我对此进行了更多的研究。这个错误发生在1.0.3中,但不是1.0.4(但它也不适用于1.0.4)。实际情况是,当作用域是控制器作用域的子作用域时,ng切换,而不是ng重复迭代子作用域。因此,当发出指令时,route
对ng开关不可见。这里有一个使用1.0.4的fiddle——您可以单击一些链接来查看控制器、ng重复和ng切换默认作用域。检查ng开关的默认作用域,可以看到它的$parent是控制器的作用域,而不是ng重复作用域。
我认为ng开关打开后应该跟着ng开关。在您的情况下,您有
介于两者之间的CCD_ 2。
你展示的逻辑不需要ng开关,或者我可能遗漏了什么。