2015-05-14 4 views
0

Я пытаюсь установить бумажную кнопку активное использование следующего кодаКаков правильный способ настройки paper_button в Dart?

в HTML файле:

<template> 
... 
    <paper-button id="button1" toggle active="{{buttonsActive}}">button 1</paper-button> 
    <paper-button id="button2" toggle active="{{buttonsActive}}">button 2</paper-button> 
</template> 

и в файле дротика:

@observable bool buttonsActive = false; 

, если нажать на кнопку Button1 при этом он меняет кнопку2 на активный/неактивный. Однако, если я позже нажму кнопку2, после нажатия кнопки1, кнопка1 не изменит активное состояние. То же самое происходит и с другим, если я сначала нажимаю кнопку2.

Это ошибка на бумажной кнопке или есть способ сделать это правильно?

ответ

0

Я нашел обходное решение.

Добавить следующий buttonsActiveListener:

buttonsActiveChanged(bool oldValue, bool newValue) { 
    ($['button1'] as PaperButton).jsElement['lastEvent'] = null; 
    ($['button2'] as PaperButton).jsElement['lastEvent'] = null; 
    } 

предыдущий код делает lastEvetn неопределенные каждый buttonsActive переменные изменения.

Это вызвано тем, что это:

activeChanged: function() { 
    this.super(); 

    if (this.toggle && (!this.lastEvent || this.matches(':host-context([noink])'))) { 
     this.toggleBackground(); 
    } 
    }, 

, который появляется в строке 58 папье-кнопки-base.html. Важной линией является оператор if, который проверяет, является ли lastEvent ложным (null или undefined).

Снова это только обходное решение.

+0

Я бы написал ошибку на https://github.com/Polymer/paper-button –

+0

спасибо, что я только что создал https://github.com/Polymer/paper-button/issues/54 –

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