내 폴리머 기반 웹 사이트에서 아약스를 통해 데이터를로드한다는 사용자 정의 요소를 만들었습니다. 데이터로드의 현재 상태에 따라 올바른 콘텐츠를 표시하기 위해 일부 <template if="{{}}">
요소를 만들었습니다. 그것은 뭔가 이런 식으로 같습니다템플릿 내부에 노드 가져 오기
<polymer-element name="modules-item" attributes="moduleID categories">
<template >
<service-get-module module="{{module}}" moduleID="{{moduleID}}"></service-get-module>
<paper-shadow z="1">
<core-toolbar>
<span flex hero-id="title" hero itemprop="name">{{module.title}}</span>
</core-toolbar>
</paper-shadow>
<paper-progress id="moduleLoadingProgress"></paper-progress>
<template if="{{moduleID == null}}">
<p>Modul not available</p>
</template>
<template if="{{moduleID != null && module == null}}">
<p>Module is loading...</p>
</template>
<template if="{{moduleID != null && module != null}}">
<div id="moduleContainer">
<!-- Content //-->
</div>
<template>
</template>
<script>
Polymer({
module: null,
moduleID: null,
ready: function(){
console.log(this.$.moduleContainer);
}
</script>
</polymer-element>
좋은 작품,하지만 난 그것을 얻을하지 않는 <div id="moduleContainer">
에 액세스하려고하면 ... 난 그냥 이렇게 많은 게시물을 읽을 수는 있지만 모든 솔루션을하지 않았다. anybode 도움이 될까요? :)
여기 라이브 웹 사이트에 대한 링크입니다 : http://www.test.gruppenstunde.eu/
UPDATE 나는 그것이 hidden?
-Attribute를 사용하는 것이 더 쉽습니다 것을 발견
폴리머 조금 더 작업 후 캐주얼 숨기기 콘텐츠. 예 :
<div hidden?="{{moduleID != null}}">Module not available</div>
감사합니다. 하지만'querySelector'를 사용하면 컨테이너도 얻지 못합니다. 이미'ready' 함수에서'module' 변수는 null이 될 것이라고 생각했습니다. 왜냐하면 그 모듈은 Ajax 진행 후에 내용을 얻었 기 때문에 'template'가 표시 될 때 컨테이너를 가져 오기 위해'moduleChanged' 함수를 만들었지 만 그것도 작동하지 않습니다 ... – Jokus
표현식이 처음'true' 인 경우'domReady'를 시도 할 수 있습니다 . 'false'이면 요소가 없기 때문에 요소를 가져올 수 없습니다. 'moduleChanged'에서 [job] (https://www.polymer-project.org/docs/polymer/polymer.html#job)을 사용하여 Polymer가 먼저 뷰를 업데이트 할 수 있도록 지연을 추가 할 수 있습니다. –
고마워요.하지만 제 작은 목적으로는 너무 어려울 것 같습니다. 그래서 나는 모든'if-templates'을 내 코드에서 지우고 다른 방법으로 사용합니다 :) – Jokus