Празно пространство в долната част на диалоговия прозорец за полимерна хартия

Имам персонализиран полимерен диалогов прозорец, който използвам за влизане, ето как искам да изглежда:

въведете описание на изображението тук

Това е кодът, който използвам, за да постигна това:

<polymer-element name="login-dialog">
  <template>
    <paper-dialog heading="XYZ Login" vertical autoCloseDisabled="true" transition="paper-transition-center" opened="true">
      <p>{{feedback}}</p>
      <paper-input floatingLabel label="Username" inputValue="{{username}}" type="text"></paper-input>
      <paper-input floatingLabel label="Password" inputValue="{{password}}" type="password"></paper-input>

      <paper-button role="button" on-click="{{reset}}" class="noink" affirmative>
        Reset Password
      </paper-button>           
      <paper-button role="button" on-click="{{login}}" class="ink" affirmative>
        Login
      </paper-button>
    </paper-dialog>
  </template>
  <script type="application/dart" src="login-dialog.dart"></script>
</polymer-element>

Не искам бутоните да затварят диалоговия прозорец, затова премахвам потвърждението от хартиените бутони, за да мога сам да затворя диалоговия прозорец, ако са попълнени правилните данни за вход. Веднага след като премахна потвърждението, се появява голямо бяло пространство в долната част на диалоговия прозорец:

въведете описание на изображението тук

В кода на дартс засега имам следното:

  login(event, detail, target) {
    print("Clicked Login");

    return false;
  }

  reset(event, detail, target) {
    print("Clicked Reset");

    return false;
  }

Надявах се, че връщането на false ще спре затварянето на диалоговия прозорец, ако използвам утвърдително, но това не прави нищо. Някакви идеи как да накарам бутоните да не затварят диалоговия прозорец, освен ако не му кажа да го направи в кода на dart и да няма това бяло пространство отдолу? (не искам да го хаквам с css)


person Jan Vladimir Mostert    schedule 31.12.2014    source източник


Отговори (1)


Връщането на false не прави нищо. Трябва да се обадите на preventDefault() за събитието.

login(event, detail, target) {
    print("Clicked Login");

    event.preventDefault();
    // event.stopPropagation();
  }

  reset(event, detail, target) {
    print("Clicked Reset");

    event.preventDefault();
    // event.stopPropagation();
  }

<paper-dialog> има специфична опция за деактивиране на автоматичното затваряне, така че можете да affirmative само за оформление.

<paper-dialog closeSelector="" ....

вижте също Предотвратяване на автоматичното затваряне на хартиен диалог

person Günter Zöchbauer    schedule 31.12.2014
comment
event.preventDefault(); не прави нищо, ако бутонът е настроен на положително, ако не е настроен на положително, тогава получавам поведението, което търся, но след това получавам и тази голяма бяла празнина в долната част. - person Jan Vladimir Mostert; 31.12.2014
comment
Опитвали ли сте да добавите stopPropagation()affirmative), можете също да опитате stopImmediatePropagation() вместо това. - person Günter Zöchbauer; 31.12.2014
comment
Наистина имам, все още затваря диалоговия прозорец. Няма ли нещо различно от утвърдително/пренебрежително, което мога да използвам, за да гарантирам, че бутоните ще седят там, където трябва? - person Jan Vladimir Mostert; 31.12.2014
comment
Добавянето на ‹paper-dialog closeSelector= ...› го коригира, благодаря Гюнтер! Ако можете да актуализирате отговора си, за да включите това, ще го приема. - person Jan Vladimir Mostert; 31.12.2014
comment
Освен това event.preventDefault сега изглежда излишен, работи и без него. - person Jan Vladimir Mostert; 31.12.2014
comment
Запазих го в отговора си, защото използвахте return false във въпроса си и това не работи дори в случаите, когато preventDefault() и stopPropagation() не работят. Не знам защо това не работи с paper-dialog, обикновено това е начинът да се потисне събитието, за да бъде обработено от други части на DOM. - person Günter Zöchbauer; 31.12.2014
comment
Трябва ли да регистрирам грешка за това? - person Jan Vladimir Mostert; 01.01.2015