Полимер, принудительное закрывание ящика ящика-панели при готовности

Я пытаюсь заставить ящик сердечника-ящика-панели закрыть на готовом полимере. В настоящее время у меня есть основная панель ящиков как часть пользовательского элемента, который я определяю. Я пробовал следующее:

«drawer» — это идентификатор элемента core-drawer-panel.

<core-drawer-panel id="drawer" drawerWidth="155px" touch-action="pan-y" selected="main" narrow>

Polymer({
   ready: function(){
      this.$.drawer.togglePanel();
      this.$.drawer.closePanel();
   }
});

Ни одна из двух вышеперечисленных функций, по-видимому, не вызывает закрытие ящика при запуске или вообще не вызывает его. Они правильно ссылаются на функцию. Я попробовал console.log(this.$.drawer.togglePanel); и напечатал правильную функцию. Помимо выполнения некоторого взлома CSS, может ли кто-нибудь сказать мне, что я могу делать неправильно?

Я смог заставить это работать, заставив узкий макет, например. forceNarrow="true", но это, похоже, не решает мою проблему эффективно.

РЕДАКТИРОВАТЬ: я также видел этот связанный сообщение. Но принуждение ResponseWidth к большому числу, похоже, не решает проблему....


person andrsnn    schedule 19.12.2014    source источник


Ответы (2)


Хм, насколько я понимаю, togglePanel(); и closeDrawer() работают только тогда, когда элемент core-drawer-panel находится в узком режиме.

Чтобы заставить ваш компонент находиться в узком режиме, вы, кажется, добавляете атрибут narrow, но, насколько я знаю, narrow является только геттером, т.е. для принудительного узкого режима вы должны использовать forceNarrow=true

В любом случае, событие ready() не кажется подходящим местом для принуждения к такому поведению. Я пытался сделать наоборот, установив forceNarrow=true и открывая ящик при загрузке. Это не работало с ready(), но хорошо работало с domReady. См. методы жизненного цикла элемента в документе: https://www.polymer-project.org/docs/polymer/polymer.html#lifecyclemethods

Надеюсь, поможет...

person LostInBrittany    schedule 19.12.2014

Есть недокументированное свойство hidden.

Просто делать:

Polymer({
   ready: function(){
      this.$.drawer.hidden = true;
   }
});
person vinyll    schedule 13.02.2016