2016-11-16 2 views
0

Я хочу, чтобы железо медиа-запрос для вызова функции, если запрос соответствует изменениям и проверить, если запрос соответствует правда, сделать что-то ...полимера, запрос железа СМИ не работает правильно

это мой код:

<dom-module id="example-example"> 
    <style>  
    </style> 

    <template> 

     <iron-media-query query="(min-width: 200px)" query-matches="{{small}}" on-query-matches-changed="detectSmall"></iron-media-query> 
     <iron-media-query query="(min-width: 1400px)" query-matches="{{large}}" on-query-matches-changed="detectLarge"></iron-media-query> 

    </template> 

    <script> 
    Polymer({ 
     is: 'example-example', 
     detectLarge: function(){ 
      console.log(this.large); 
     }, 
     detectSmall: function(){ 
      console.log(this.small); 
     } 
    }); 
    </script> 
</dom-module> 

В первый раз, когда загружаю страницу, моя ширина устройства составляет 1300 пикселей, поэтому this.small должен быть правдой, но он не определен.

Что именно я делаю неправильно здесь?

ответ

1

Причина в том, что к моменту вашего события изменения Полимер все еще не закончен с элементом. Если вы хотите получить доступ к этому свойству в функции вы можете использовать его как этот

detectLarge: function(e){ 
     console.log(e.detail.value); 
    }, 
+0

спасибо, это работает, но как вы думаете, это правильный способ использовать e.detail.value вместо использования значения в запрос-спичка? –

+0

'query-matches' - это когда вам нужно использовать этот результат в' HTML'. В случае 'javascript'' event' является лучшим вариантом, так как теперь вам не нужно зависеть от какой-либо сторонней библиотеки 'Polymer' здесь, чтобы обновить переменную. – a1626

+0

это право спасибо. есть все равно, чтобы проверить оба запроса в одной функции? Я хочу проверить, делает ли min-width 200px что-то или если min-width составляет 1400px, сделайте что-то еще, и если ни одно из них не существует, сделайте что-нибудь еще. Могу ли я сделать это в одной функции вместо использования одной функции для каждого запроса на железо-медиа? –

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