Во-первых, когда вы используете ember I , настоятельно рекомендуем , вы не используете JS-файл начальной загрузки по умолчанию! Это не очень хорошо сочетается с Ember. Однако есть ember-bootstrap
, который предоставляет вам API на основе компонентов для функций начальной загрузки.
Да, и jQuery
является частью самого ember, однако вы можете отключить это для более новых версий ember.
Однако простая навигация по вкладкам, как у вас, очень , которую легко сделать с самим ember. Особенно если вы используете ember-truth-helpers
!
Вы можете использовать простые if
с для своих вкладок:
<ul>
<li role="button" onclick={{action 'activate' 'tab1'}}>Tab1</li>
<li role="button" onclick={{action 'activate' 'tab2'}}>Tab2</li>
</ul>
{{#if (eq currentTab 'tab1')}}
<div>
Tab 1
</div>
{{/if}}
{{#if (eq currentTab 'tab2')}}
<div>
Tab 2
</div>
{{/if}}
И хотя я обычно делал бы onclick={{action (mut currentTab) 'tab1'}}
, чтобы активировать tab1
, здесь я использовал действие.
Это из-за вашей особой функциональности :
То, что я хочу, - это отключить активную вкладку (и таблетку) при повторном нажатии, скрывая весь контент.
Теперь это легко реализовать в следующих действиях:
activate(name) {
if(this.currentTab === name) {
this.set('currentTab', '');
} else {
this.set('currentTab', name);
}
}
И - вот трюк, реализующий это решение .