Дух руля заключается в том, что он «не логичен». Иногда это заставляет нас чувствовать, что мы боремся с этим, а иногда мы получаем некрасивую вложенную логику if / else. Вы могли бы написать помощника; многие люди дополняют руль «лучшим» условным оператором или считают, что он должен быть частью ядра . Я думаю, что вместо этого
{{#if FriendStatus.IsFriend}}
<div class="ui-state-default ui-corner-all" title=".ui-icon-mail-closed"><span class="ui-icon ui-icon-mail-closed"></span></div>
{{else}}
{{#if FriendStatus.FriendRequested}}
<div class="ui-state-default ui-corner-all" title=".ui-icon-check"><span class="ui-icon ui-icon-check"></span></div>
{{else}}
<div class="ui-state-default ui-corner-all" title=".ui-icon-plusthick"><span class="ui-icon ui-icon-plusthick"></span></div>
{{/if}}
{{/if}}
вы можете расположить вещи в своей модели так, чтобы вы могли иметь это,
{{#if is_friend }}
<div class="ui-state-default ui-corner-all" title=".ui-icon-mail-closed"><span class="ui-icon ui-icon-mail-closed"></span></div>
{{/if}}
{{#if is_not_friend_yet }}
<div class="ui-state-default ui-corner-all" title=".ui-icon-check"><span class="ui-icon ui-icon-check"></span></div>
{{/if}}
{{#if will_never_be_my_friend }}
<div class="ui-state-default ui-corner-all" title=".ui-icon-plusthick"><span class="ui-icon ui-icon-plusthick"></span></div>
{{/if}}
Просто убедитесь, что только один из этих флагов верен. Скорее всего, если вы используете это if/elsif/else
в своем представлении, вы, вероятно, используете его и где-то еще, поэтому эти переменные могут не оказаться лишними.
Держите это постным.