2016-09-17 2 views
2

일반적으로 잘 작동하는 <style include="style-name"></style>을 사용하는 스타일을 포함하고 있습니다.폴리머 : 동적 내용을로드 할 때 스타일 다시로드

그러나 JavaScript를 통해 콘텐츠를 동적으로로드하고 변경하는 요소가 하나 있습니다. 그것은 어떤 시점에서 어떤 외부 소스로부터 새로운 컨텐츠를로드하고 그에 따라 컨텐츠를 업데이트 할 것입니다. 새로운 콘텐츠에는 style-name의 스타일이 적용되지 않습니다.

어떻게 Polymer에 스타일을 재평가하고 새로운 내용에도 적용 할 수 있습니까?


차이가 있다면 Meteor + Synthesis를 사용하고 있습니다.

+0

당신이'Polymer.updateStyles()'또는'this.updateStyles()'를 호출하려고 했 :

Polymer.updateStyles()는이 같은 로컬 DOM CSS의 변수를 변경할 때 작동합니까? 더 많은 정보를 보려면 [여기] (http://stackoverflow.com/questions/30854101/change-style-programmatically)를 참고하십시오. –

답변

1

이 같은 스타일의 범위는 폴리머 importHref을 (사용해야합니다)과와 DOM() 함수를 유지하는 경우 :

// ... 
let importSource = Polymer.Base.importHref('path/to/external-source', 
// Import is done, use the body of that 
event => { 
    // #container is my element which should have the content 
    // but you can change to any element what you want 
    // or use just the this.root 
    Polymer.dom(this.$.container).innerHTML = importSource.import.body; 
}, 
// Handle errors 
event => console.error(event)); 
// ... 

그림자 DOM에서 당신이 그늘 DOM을 사용하는 경우 폴리머는 스타일의 범위를 적용합니다이 방법은, 기본적으로 작동해야하지만, 테스트하지 않았으므로, Polymer에 내장 된 함수를 사용하는 것이 좋습니다. this.customStyle['--my-toolbar-color'] = 'blue';

+0

중요한 부분은 Polymer.dom (element) .innerHTML = "..."; 'element.innerHTML'이 아니라 'element.innerHTML'입니다. 감사합니다 :) – Yorrd

+0

@ Yorrd 임 사용자 정의 요소를 포함하는 템플릿 파일을 가져 와서 내가 왜 importHref 사용 :) 그게 오신 것을 환영합니다! – adaliszk

관련 문제