ich eine Komponente app/components/haben Angebots listing.js:Ember 2 - ein-/ausblenden Inhaltskomponente
import Ember from 'ember';
export default Ember.Component.extend({
isOfferShowing: false,
actions: {
offerShow() {
if (this.get('isOfferShowing')) {
this.set('isOfferShowing', false);
} else {
this.set('isOfferShowing', true);
}
}
}
});
und seine Vorlage app/templates/components/Angebot-listing.hbs :
<div class="offer__container">
<div class="row">
<div class="gr-3">
<div class="offer__avatar" style="background-image: url('{{ offer.avatar }}')"></div>
</div>
<div class="gr-9">
<div class="offer__name" {{action "offerShow"}}>{{ offer.firstname }} {{ offer.lastname }}</div>
<div class="offer__age" {{action "offerShow"}}>{{ offer.age }} ans</div>
{{#if isOfferShowing}}
<div class="offer__description" {{action "offerShow"}}>{{offer.description}}</div>
{{else}}
<div class="offer__description" {{action "offerShow"}}>{{word-limit offer.description 50}}</div>
{{/if}}
{{#if isOfferShowing}}
<div class="+spacer"></div>
<a class="offer__button"><i class="fa fa-envelope"></i> Contacter par email</a>
<a class="offer__button"><i class="fa fa-phone"></i> Voir le numéro de téléphone</a>
{{/if}}
</div>
</div>
</div>
die in app/templates/index.hbs wiedergegeben wird:
{{#each model as |offerUnit|}}
{{offer-listing offer=offerUnit}}
{{/each}}
Das Beispiel funktioniert gut, aber ich würde gerne alle "mehr" Inhalt ausblenden, wenn ein neues angezeigt wird.
Was meinst du genau mit "verstecken jeden" mehr "Inhalt, wenn ein neuer" zeigt? –
https://dl.dropboxusercontent.com/u/58469525/stackoverflow/ember-show-hide.png - Wie Sie sehen können, wenn wir auf den Text klicken, werden die Call Actions Buttons angezeigt. Ich hätte gerne nur eine zu der Zeit geöffnet. –
Ok ich verstehe besser was du brauchst. Bitte sehen Sie meine Antworten. –