Dust.js模板不符合条件存在

时间:2017-09-15 18:34:30

标签: javascript json dust.js

我遇到了一个有趣的问题,我的Dust.js模板没有遵守存在的条件。

我的数据如下:

{"guaranteedHistory": [
    {
      "depositDate": "2017-08-31T00:00:00.000-0500",
      "interestRate": 515.5,
      "maturityDate": "2017-08-31T00:00:00.000-0500",
      "beginningBalance": 874757257.4,
      "deposits": 4.25,
      "transferIn": 75.7,
      "investmentReturn": 52.71,
      "amtReinvested": 5.5,
      "maturityWithdrawal": 6.66,
      "surrenderCharge": 7.77,
      "endingBalance": 8.88,
      "surrenderValue": 5735.56
    }
  ],
}

模板(没有用):

{?guaranteedHistory}
  <table id="a">
    <thead>
      <tr>
        <th>&nbsp;</th>
        <th>What happened this period</th>
        <th></th>
      </tr>
    </thead>
  </table>
{:else}
  <table id="b">
    <thead>
      <tr>
        <th>Deposits</th>
        <th>Dividends</th>
        <th>Investment return</th>
      </tr>
    </thead>
  </table>
{/guaranteedHistory}

问题在于,无论发生什么,模板都只显示else中的所有条件UNLESS in exists I输出一个值在guaranteeHistory中...

模板(可行):

{?guaranteedHistory}
  {guaranteedHistory[0].depositDate}
  <table id="a">
    <thead>
      <tr>
        <th>&nbsp;</th>
        <th>What happened this period</th>
        <th></th>
      </tr>
    </thead>
  </table>
{:else}
  <table id="b">
    <thead>
      <tr>
        <th>Deposits</th>
        <th>Dividends</th>
        <th>Investment return</th>
      </tr>
    </thead>
  </table>
{/guaranteedHistory}

我无法找到解决这个问题的方法。我也无法在dustjs.com上的开发模式下复制此问题,它在那里正常工作。有人可以根据提供的信息帮助或告诉我可能出现的问题吗?

1 个答案:

答案 0 :(得分:1)

没有理由认为这不应该像你所描述的那样正常工作。此外,您提供的编译body_0绝对是正确的。

所以,如果真的发生这种情况,唯一可能的原因是:

  1. 您没有渲染您认为自己的模板。如果您正在编译和渲染自己,这似乎不太可能。
  2. guaranteedHistory的价值不是您认为的。因为您正在http://www.dustjs.com/test/test.html上测试模板并且它在那里正常运行,这是我的猜测。
  3. 所以,这告诉我你有一个竞争条件,并且在设置之前你试图用guaranteedHistory进行渲染(通过一些回调,Promise等)。

    尘埃2.7.2 doesn't resolve Promises in exists blocks所以这可能就是你所要打的。如果需要,可以使用后备箱尖端,直到释放2.8。