2013-07-22 2 views
2

J'ai un petit nombre de styles avec $this->headLink()->appendStylesheet() sur la mise en page et j'essaie d'ajouter une autre feuille de style à l'intérieur d'une vue. Cependant, la feuille de style de la vue est toujours la première rendue dans la pile headLink.Commande d'assistance ZF2 headLink

layout.phtml:

echo $this->headLink()->appendStylesheet($this->basePath('css/styleA.css')) 
         ->appendStylesheet($this->basePath('css/styleB.css')); 

Puis dans la vue j'ai essayé le

suivant

view.phtml:

$this->headLink()->appendStylesheet($this->basePath('css/sub/styleC.css')); 

et

$this->headLink()->offsetSetStylesheet(100, $this->basePath('css/sub/styleC.css')); 

Cependant, les deux se retrouvent avec styleC bein g la première étiquette de liaison rendue. Je comprends que les vues enfant sont rendues en premier (ie, view.phtml est rendu avant layout.phtml), mais je pensais que les helpers comme headLink et headScript ont une pile partagée tant que le rendu est le même. Cette hypothèse est-elle fausse?

Répondre

2

Vous devez préfixer vos feuilles de style dans la mise en page, par exemple .:

echo $this->headLink()->prependStylesheet($this->basePath('css/styleB.css')) 
         ->prependStylesheet($this->basePath('css/styleA.css')); 

et ajoutez les feuilles de style en vue comme vous le faites avant.

+0

Oui, mais pourquoi? Si la pile d'aide de vue est partagée entre les vues, alors offsetSetStyelsheet (100, ...) devrait déplacer la feuille de style à la fin, non? – Adrian

+1

Il le déplace jusqu'à la fin, mais à ce moment-là, le conteneur de feuille de style n'a qu'un seul élément, et 'alors' la mise en page ajoute les autres feuilles de style. – Skpd