【问题标题】:multiple ng-repeat with ng-if expression使用 ng-if 表达式进行多次 ng-repeat
【发布时间】:2015-06-15 11:31:03
【问题描述】:

我有 json 附带的银行分期付款列表,我想在付款页面上重复无论银行是否支持分期付款计数的列表。列表必须从 2 开始计数到 ​​9。

这是 json(仅包括第一家银行)

    [{
      "Installments": [{
        "InstallmentId": 9,
        "InstCount": 2,
        "InstRate": 0,
        "BankId": 1,
        "Info": false
      }, {
        "InstallmentId": 10,
        "InstCount": 3,
        "InstRate": 0,
        "BankId": 1,
        "Info": false
      }, {
        "InstallmentId": 11,
        "InstCount": 4,
        "InstRate": 7.30,
        "BankId": 1,
        "Info": false
      }, {
        "InstallmentId": 12,
        "InstCount": 5,
        "InstRate": 0,
        "BankId": 1,
        "Info": false
      }, {
        "InstallmentId": 13,
        "InstCount": 7,
        "InstRate": 4.50,
        "BankId": 1,
        "Info": false
      }, {
        "InstallmentId": 14,
        "InstCount": 9,
        "InstRate": 11.28,
        "BankId": 1,
        "Info": false
      }],
      "BankId": 1,
      "BankName": "Garanti",
      "IsInstallments": false,
      "BankLogo": "img/bank/cards-01.png"
    }, {
      "Installments": [...],
      "BankId": 2,
      "BankName": "Advantage",
      "IsInstallments": false,
      "BankLogo": "img/bank/cards-05.png"
    }, {
      "Installments": [...],
      "BankId": 3,
      "BankName": "Finansbank",
      "IsInstallments": false,
      "BankLogo": "img/bank/cards-03.png"
    }]

这是 html 标记:

    <div id="installments" 
    class="{{bankValue !== '' ? 'inactive' : '' }}">
      <div class="row m0 row-paddless">
        <div class="col-xs-4 col-sm-2" 
        ng-repeat="bank in json" >
          <section data-bank-id="{{bank.BankId}}" 
          class="bank {{bankValue == bank.BankId ? 'active' : 'inactive' }}">
            <div style="background-image: url('{{bank.BankLogo}}');" class="img-holder"></div>
            <ul>

              <li ng-repeat-start="i in [2,3,4,5,6,7,8,9]"  
              ng-if="bank.Installments[i-2].InstCount !== i || bank.Installments[i-2].InstCount == undefined">
                <p>{{i}} TAKSİT</p>
                <p>disabled</p>
                <p><small>disabled</small></p>
              </li>
              <li ng-repeat-end="i in [2,3,4,5,6,7,8,9]" 
              ng-click="clickLi(ins, bank)" 
              ng-if="bank.Installments[i-2].InstCount == i" class="{{installmentValue == bank.Installments[i-2].InstCount ? 'active' : '' }} {{bank.Installments[i-2].InstRate == 0 ? 'special' : '' }}">
                <p>{{bank.Installments[i-2].InstCount}} TAKSİT</p>
                <p><span itemprop="price" class="price-value" ng-init="newPrice = price + (price * bank.Installments[i-2].InstRate / 100)"> {{ newPrice | number:2 }} TL</span></p>
                <p ng-init="installedPrice = ((price + (price * bank.Installments[i-2].InstRate / 100)) / bank.Installments[i-2].InstCount)"><span><small>  {{ installedPrice | number:2 }} TL X {{bank.Installments[i-2].InstCount}} ay</small></span></p>
              </li>
            </ul>
          </section><!-- "bank" -->
        </div><!-- "col-xs-4 col-sm-2" -->
      </div><!-- "row" -->
    </div><!-- installments -->

这是我得到的(截图): http://aslanbakan.com/down/bank-error.PNG

这就是我想要实现的(截图): http://aslanbakan.com/down/bank-achive.PNG

我不知道我在哪里做错了。

【问题讨论】:

  • 截图链接不正确。此外,如果您能提供一个最小的工作示例(JSFiddle、JS Bin 等),那将非常有帮助
  • 修复了 ss。并添加了笔.. codepen link

标签: javascript json angularjs angularjs-ng-repeat angular-ng-if


【解决方案1】:

据我所知,您只想显示那些有分期付款的银行。

你检查了

bank.Installments[i-2].InstCount == undefined

但是你需要检查 typeof 属性是否等于 undefined,像这样:

typeof bank.Installments[i-1].InstCount === 'undefined'

更新了你提供的笔:http://codepen.io/anon/pen/dozpBE

【讨论】:

  • 不,我实际上想显示所有项目,无论分期付款是否存在。如果分期付款不存在,我想在该项目上显示禁用的文本。就像“想要实现”的屏幕截图一样。
  • 对于这种情况,您应该使用 ng-class 而不是 ng-if。
  • 我还是不明白是什么问题……看这支笔:codepen.io/anon/pen/eNEBpK
  • 银行提供除 6 和 8 计数分期付款外的所有比率。我想在 ul 列表的第 6 和第 8 li 标记中显示“禁用”文本。但是 for 循环在第 6 次及以后禁用。这支笔在第 7 期和第 9 期也被禁用。但银行支持7、9分期的分期比例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-28
  • 1970-01-01
  • 1970-01-01
  • 2017-11-18
  • 1970-01-01
相关资源
最近更新 更多