在指令ng-switch属性中访问父范围值

时间:2013-05-27 17:31:39

标签: angularjs

为什么这不起作用?

{{shout.user.id}} : {{$parent.me.id}} <!-- Gives: 1 : 1 -->

<div ng-switch on="shout.user.id">

     {{shout.user.id}} : {{$parent.me.id}} <!-- Gives: 1 : 1 -->

     <a class="btn btn-mini btn-danger pull-right" 
        ng-click="remove($index)" 
        ng-switch-when="$parent.me.id" <!-- THIS doesn't work!? -->
      ><i class="icon-remove"></i></a>

</div>

我对代码进行了间隔和评论,因此更容易理解。

我试图将shout.user.id和/或$ parent.me.id包装成大括号,但它没有解决我的问题。

如果我将这两个值硬编码为1和1,则ng-switch工作,并显示按钮。

在这种情况下,$ parent是$ rootScope。

2 个答案:

答案 0 :(得分:0)

我通过使用ng-if来解决它。甚至都不知道存在。

答案 1 :(得分:0)

正如对ng-switch page的Disqus评论中所提到的,似乎Angular将ng-switch-when属性的值作为字符串进行评估 - 它不会根据范围进行评估。

有关详细信息,请参阅Angular source codevar ngSwitchWhenDirective = ...