2015-06-02 6 views
3

Я работаю по переходу на Polymer 1.0Выбор элемента (полимер 1,0)

Вот мой шаблон:

<template> 
    <div class="scroll"> 
     <div class="content"> 
      <content></content> 
     </div> 
     <div class="bar barY"></div> 
    </div> 
</template> 

Содержание заполняется с текстом в основной HTML-файл.

Мне нужно получить высоту прокрутки этого div. Я имел обыкновение делать:

height = $(this.shadowRoot).find('.content')[0].scrollHeight; 

Но это больше не работает:

Uncaught TypeError: Cannot read property 'scrollHeight' of undefined 

Я пытался добавить идентификатор в DIV, и выбрав его следующим образом:

height = this.$.content.scrollHeight; 

Но это дает мне значение 0, хотя в содержании много текста.

Я вызываю этот код из функции ready.

Я правильно выбрал элемент?

ответ

7

<content> фактически не содержит содержимое компоненты, а это обеспечивает точку вставки для тех содержимого, которые будут братьями к <content> элементу. Для того, чтобы получить элементы, которые вставляются для данного <content> узла, вы можете использовать следующее:

var content = Polymer.dom(this.root).querySelector('content'); 
var distributed = Polymer.dom(content).getDistributedNodes() 

Документацию по вышеуказанному можно найти на https://www.polymer-project.org/1.0/docs/devguide/local-dom.html#dom-api-examples наряду с более полным примером.

+0

Удивительная благодарность, что сделал трюк. Теперь у меня возникают проблемы с синтаксисом выбора свойства, но я попрошу об этом в отдельном вопросе. – Tyler

Смежные вопросы