【问题标题】:A new on-the-fly variable from ng-repeat is not visible outside the ng-switch来自 ng-repeat 的新动态变量在 ng-switch 之外不可见
【发布时间】:2016-05-31 10:48:33
【问题描述】:

我的代码中有一个标签显示过滤项目的数量,如下所示

<div ng-controller="MyCtrl">
Filter: <input ng-model='filterExpr'><button ng-click='items.push("car")'>Add sth to the list</button>
        <button ng-click='items.splice(items.length-1,1)'>minus sth from the list</button>
<hr>
<ul>
    <li ng-repeat='item in filtered = (items | filter:filterExpr)'>{{item}}</li>
</ul>
<hr>    
Filtered list has {{filtered.length}} items

喜欢这里的示例JSFiddle

但是在我将 ng-repeat 部分放到 ng-switch 视图之一之后,它看起来像是动态变量 filteredng-switch 之外不再可见 from ng-repeat。

 <div ng-switch on="viewType.value">
  <div ng-switch-default>
    <ul>
        <li ng-repeat='item in filtered = (items | filter:filterExpr)'>{{item}}</li>
    </ul>
  </div>
 </div>  

喜欢这里JSFiddle

【问题讨论】:

    标签: javascript angularjs angularjs-ng-repeat ng-switch


    【解决方案1】:

    我认为这是因为ng-switch 创建了自己的范围。您可以通过在开关内使用$parent 来绕过它。

    <ul>
        <li ng-repeat='item in $parent.filtered = (items | filter:filterExpr)'>{{item}}</li>
    </ul>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-03
      • 1970-01-01
      • 2015-08-09
      • 2013-11-23
      • 2014-09-30
      • 1970-01-01
      • 2014-06-23
      • 1970-01-01
      相关资源
      最近更新 更多