JsRender如果条件在自定义范围标记内失败

时间:2014-02-18 21:36:28

标签: if-statement jsrender

我正在尝试将一个选定的类添加到范围标记内的img标记中。

 <ul class="cci-TweetContainer">
  {{range refTweets start=0 end=9}}
    <li data-userID="{{:userId}}">
      <a href="javascript:void(0);" alt="User Avatar" data-userID="{{:userId}}">
          {{if refTweets == 0}}
            <img class="selected" src="{{:userAvatar}}" alt="User avatar icon" width="25" height="25" />
          {{else}}
            <img src="{{:userAvatar}}" alt="User avatar icon" width="25" height="25" />
          {{/if}}
      </a>
    </li>
   {{/range}} 
  </ul>

2 个答案:

答案 0 :(得分:1)

refTweets是一个数组吗?如果是,则在{{range}}内,当前数据对象将是refTweets数组中的当前项。所以对refTweets == 0的测试似乎没有意义。您正在测试当前对象上的refTweets属性 - 所以refTweet.refTweets == 0 - 始终为false。

你可以像这样传递上下文:

{{range refTweets ~selId=selectedId start=0 end=9}} <li data-userID="{{:userId}}"> <a href="javascript:void(0);" alt="User Avatar" data-userID="{{:userId}}"> {{if userId === ~selId}} ... {{else}} ... {{/if}} </a> </li> {{/range}}

(假设您在具有refTweets属性的同一对象上有selectedId属性。)

答案 1 :(得分:-1)

通过添加引用refTweets属性的#getIndex(#parent)来使代码正常工作。

{{range refTweets start=0 end=9}}
        <li data-userID="{{:userId}}">
          <a href="javascript:void(0);" alt="User Avatar" data-userID="{{:userId}}">
              {{if #getIndex(#parent) == 0}}
                <img class="selected" src="{{:userAvatar}}" alt="User avatar icon" width="25" height="25" />
              {{else}}  
                <img src="{{:userAvatar}}" alt="User avatar icon" width="25" height="25" />
              {{/if}}  
          </a>
        </li>
{{/range}}