all*_*hou 2 angularjs ng-switch angularjs-directive angularjs-scope angularjs-ng-repeat
JS
$scope.mode = "test"
$scope.array = ['test1', 'test2', 'test3']
Run Code Online (Sandbox Code Playgroud)
HTML
<div ng-switch on="mode">
<div ng-repeat="item in array" ng-switch-when="test">
Test {{item}}
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到的输出是
Test Test Test
Run Code Online (Sandbox Code Playgroud)
它似乎无法访问项目.如果我删除了ng-switch-when,那么它可以正常工作.
这是因为ng-switch创建一个子范围,同样适用于ng-repeat.NG-重复的优先级运行,1000和ng-switch在800.因此ng-repeat,每个重复的div元素创建的子范围都会被覆盖ng-switch,因此ng-repeat元素上分配的子范围最终会消失.一种可能的方法是将ng-switch包装在ng-repeat之外,因为你总是不想评估每个重复元素的ng-switch表达式.这是1.2版本.
现在从1.3.x版本的角度来看,ng-switch的优先级已经被修改为1200并且ng-repeat保持在1000,因此ng-repeated范围将占优势,因为它现在具有较低的优先级,并且在那种情况下它将起作用.
| 归档时间: |
|
| 查看次数: |
1028 次 |
| 最近记录: |