2016-06-29 8 views
1

modular page 테마를 grav (템플릿 엔진으로 twig을 사용함)에 작성하려고합니다.나뭇 가지에 기존 개체에 속성 추가

기본적으로 모듈 식 테마는 적어도 두 개의 나뭇 가지 템플릿 파일로 구성됩니다. 하나는 머리글을 포함하는 페이지 프레임을 제공하고 다른 하나는 콘텐츠 모듈의 마크 업을 제공합니다.

  1. modular page frame example
  2. module example

당신이 볼 수 있듯이, 모듈 (예) html로 머리에 자바 스크립트를 추가하는 head 또는 javascripts 블록을 가지고 있지 않습니다 GRAV의 standard theme는 이러한 템플릿의 예제를 제공합니다 . (일반적인 모듈 페이지가 여러 모듈로 구성되어 있기 때문에 가능하지 않습니다. 따라서 두 개의 다른 모듈이 javascripts 블록을 변경하려고 시도하면 마지막 모듈이 의도하지 않은 결과를 초래할 수있는 변경 사항을 덮어 씁니다) .

그러나 모듈 내에서 내 페이지의 머리 부분에 자바 스크립트 코드를 추가해야합니다. 솔루션에 대해 생각하고 "사이트 와이드"존재하는 개체, 즉 pages object에 대한 속성으로 javascript 코드를 추가 할 생각이있었습니다.

이 내 질문에 이르게 :

어떻게 나뭇 가지 구문를 사용하여 기존 객체 에 속성을 추가 할 수 있습니까?

나는이 솔루션이 왜 작동하지 않을 수 있는지에 대한 이유를 생각해 볼 수 있는지 알고 싶습니다. 그러나 당신이 구문을 가지고 나를 도와 준다면, 나는 또한 그것을 시도해 볼 수 있습니다 ...

답변

0

객체의 상태를 조작하는 작업은 Twig 템플릿에서 수행하면 안됩니다. 뷰는 제공된 데이터를 출력해야합니다. 여러 블록을 추가하도록 어떻게 자바 스크립트가 의도하지 않은 결과

로 이어질 것이다 첫 번째로 변경 한 내용을 덮어 쓰게 마지막 하나에 대한 설명이 답변 here를 참조 차단 변경

시도 내용을 덮어 쓰지 않고 블록에 저장하십시오. 'extra_scripts'블록이나 그와 비슷한 것을 간단하게 가질 수 있으며, 설명 된 링크에 따라 특정 모듈에 필요한 자바 스크립트를 해당 블록에 추가 할 수 있습니다. 기본적으로 {{ parent() }}을 사용하여 부모로부터 콘텐츠가 포함되도록해야합니다.

+0

먼저 답을 주셔서 감사합니다. 그러나 추가해야 할 블록이 부모로부터 오지 않았기 때문에'{{parent()}} '를 사용하여 블록을 추가하는 것은 불가능합니다. 나는 스케치 https://www.twiddla.com/xa84jm으로 설명하려고한다. 그러나 그것이 더 효과적 일지라도 모듈 템플리트는 단순히 페이지 프레임에서 상속되지 않으므로 부모로부터 상속하는 것이 이론적으로 불가능합니다. – speendo