2013-07-22 3 views
2

레이아웃에 숫자가 $this->headLink()->appendStylesheet()으로 설정되어 있고 뷰 내부에서 다른 스타일 시트를 추가하려고합니다. 그러나 뷰의 스타일 시트는 항상 headLink 스택에서 렌더링 된 첫 번째 시트입니다.ZF2 headLink helper ordering

layout.phtml : 그러나

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

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

:

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

그런 다음보기에서 나는 다음과 같은

view.phtml을 시도했습니다 둘 다 스타일 C로 끝납니다. g 렌더링 된 첫 번째 링크 태그. 자식 뷰가 먼저 렌더링된다는 것을 이해합니다. 즉, view.phtml이 layout.phtml보다 먼저 렌더링됩니다. 그러나 렌더러가 동일하면 headLink 및 headScript와 같은 도우미가 공유 스택을 가지고 있다고 생각했습니다. 이 가정이 잘못 되었습니까?

답변

2

당신은 : 레이아웃에

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

을 예 : 당신의 스타일을 앞에 추가하고 당신이 전에 그것을로보기에서 스타일 시트를 추가해야합니다.

+0

예,하지만 그 이유는 무엇입니까? 보기 도우미 스택이 뷰를 통해 공유되는 경우 offsetSetStyelsheet (100, ...)을 수행하면 스타일 시트가 끝까지 이동해야합니까? – Adrian

+1

끝까지 이동하지만 그때 스타일 시트 컨테이너에는 하나의 항목 만 있고 '다음'레이아웃은 다른 스타일 시트를 추가합니다. – Skpd