2017-04-21 6 views
0

J'ai un code source (discours) avec lequel je dois travailler avec ember.js. J'essaie de gérer un seul "post" (le premier) dans une liste en utilisant cloaked-collection.Affichage d'un tag uniquement pour un élément d'une liste. ember.js. (cloaked-collection, discourse)

//topics.hbs 
    {{#unless model.postStream.loadingFilter}} 
      {{cloaked-collection itemViewClass="post" 
           defaultHeight="200" 
           content=postsToRender 
           slackRatio="15" 
           loadingHTML="" 
           preservesContext="true" 
           uncloakDefault="true" 
           offsetFixedTop="header" 
           offsetFixedBottom="#reply-control"}} 
      {{/unless}} 
//post.hbs 
//some code here. 
//Then I want to insert <div class="uniw"></div> only on the first post 

La question est: pour la liste des itemViewClass="post", comment puis-je vérifier si je suis dans le premier « post »? afin que je puisse insérer une pièce si le code.

+0

[ember-cloaking] (https://github.com/eviltrout/ember-cloaking) semble être une sorte de vieux morceau de code; cela dépend de 'Ember.View' qui est déjà [obsolète] (https://www.emberjs.com/api/classes/Ember.View.html) comme vous pouvez le voir. Depuis, 'cloaked-collection' n'est pas un composant et ne semble pas fournir un usage de composants contextuels; J'ai peur que tu ne puisses pas réaliser ce que tu veux. Si votre projet n'est pas une application héritée, vous devez utiliser 'cloaked-collection'; Je suggère de rechercher et de mettre à niveau vers un addon plus récent. – alptugd

+0

merci pour la réponse, mais j'ai fini par faire ma solution via javascript/jquery et en insérant l'élément après que le html ait été rendu. – anyavacy

Répondre

1

Vous devriez pouvoir utiliser firstObject pour obtenir le premier objet d'une collection. Quelque chose comme ceci:

{{items.firstObject}} 

l'intérieur de chaque bloc, vous pouvez vérifier l'index:

{{#each people as |person index|}} 
    {{#if (is-equal index 0)}} 
    {{person}} 
    {{/if}} 
{{/each}} 

Notez que est-égal est aide non standard. Vous pouvez l'obtenir de ember-truth-helpers addon ou l'écrire vous-même

+0

vous pouvez voir que le code utilise 'cloaked-collection'. Je ne suis pas sûr de savoir comment votre solution s'insérerait dans le code que j'ai posté – anyavacy