ng-if not working,但ng-show有效

时间:2015-07-08 18:31:12

标签: javascript angularjs

我试图用Angular js显示列表中的项目。我希望使用以下代码连续组织包含3个项目的项目:

  <div class='row-fluid' ng-repeat="region in regions" ng-show="$index % 3 == 0">

      <span  class='span4 checkbox'>
        <input type="checkbox"  ng-model="regions[$index].checked" ng-hide='regions[$index].text == null'> {{regions[$index].text}}
      </span>
      <span  class='span4 checkbox'>
        <input type="checkbox"  ng-model="regions[$index+1].checked" ng-hide='regions[$index+1].text == null'> {{regions[$index+1].text}}
      </span>
      <span  class='span4 checkbox'>
        <input type="checkbox"  ng-model="regions[$index+2].checked" ng-hide='regions[$index+2].text == null'> {{regions[$index+2].text}}
      </span>       
  </div>

如果我使用“ng-show”时工作正常。但是当我用'ng-if'切换它时,它根本不起作用。 (它显示所有'区域',不过滤$ index%3 == 0)。我在想“ng-if”应该是一种更标准的方式来实现我的布局设计,但不知道为什么它根本不起作用。

以下是不起作用的代码:

  <div class='row-fluid' ng-repeat="region in regions" ng-if="$index % 3 == 0">

      <span  class='span4 checkbox'>
        <input type="checkbox"  ng-model="regions[$index].checked" ng-hide='regions[$index].text == null'> {{regions[$index].text}}
      </span>
      <span  class='span4 checkbox'>
        <input type="checkbox"  ng-model="regions[$index+1].checked" ng-hide='regions[$index+1].text == null'> {{regions[$index+1].text}}
      </span>
      <span  class='span4 checkbox'>
        <input type="checkbox"  ng-model="regions[$index+2].checked" ng-hide='regions[$index+2].text == null'> {{regions[$index+2].text}}
      </span>       
  </div>

你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

现在正试图找到答案的人...尝试将$ index(或使用ng-if时遇到问题的任何变量)首先声明到控制器中,同时将其与ng-if一起使用。没有那个ng-if可能会创建自己的范围。有关更多信息,请访问stackoverflow上的这个问题。

  1. Why ng-show works with ng-repeat but ng-if doesn't?
  2. ng-if not working, ng-show works