2

こんにちは:

ページにpaper-dialog要素があります:

<paper-dialog ... id="autom_desc_dialog" autoCloseDisabled> 
    ...
    <paper-button ... id="automatizar" affirmative autofocus disabled></paper-button>
</paper-dialog>

paper-buttonクリックを処理するイベントリスナーがあります。

var auto_btn = querySelector('#automatizar');
auto_btn.on["click"].listen((Event e) {
    // Some AJAX stuff
});

event.preventDefault()私が望むのは、場合によっては、ダイアログが閉じるのを防ぐことができるようにするために、event.stopImmediatePropagation()、を試しましevent.stopPropagation()たが、成功しませんでした。

前もって感謝します。

4

2 に答える 2

3

肯定/否定属性はレイアウトに使用されるため、削除する必要はありません。Polymer ダイアログ ドキュメントが間違っています (私は GH issue をオープンしました) closeSelector のデフォルト値は '[dismissive],[affirmative]' であり、"" ではありません。closeSelector を "" に設定するだけで、ボタンをクリックするとダイアログが表示されます。

于 2014-10-09T02:32:57.377 に答える
1

affirmativeボタンから属性を削除するだけで、動作を完全に制御できます。

app-element.dart

import 'package:polymer/polymer.dart';

import 'dart:html';
import 'package:paper_elements/paper_dialog.dart';
/**
 * A Polymer app-element element.
 */
@CustomTag('app-element')

class AppElement extends PolymerElement {

  /// Constructor used to create instance of AppElement.
  AppElement.created() : super.created() {
  }

  void openClickHandler(Event e) {
    print(e);
    ($['autom_desc_dialog'] as PaperDialog).opened = true;
  }

  void closeClickHandler(Event e){
    if(true /* some condition */) {
      ($['autom_desc_dialog'] as PaperDialog).opened = false;
    }
  }

}

app_element.html

<!-- import polymer-element's definition -->
<link rel="import" href="../../packages/polymer/polymer.html">
<link rel="import" href="../../packages/paper_elements/paper_dialog.html">
<link rel="import" href="../../packages/paper_elements/paper_button.html">

<polymer-element name="app-element">
  <template>
    <style>
      :host {
        display: block;
      }
    </style>
    <paper-dialog id="autom_desc_dialog" autoCloseDisabled>
      <div>paper dialog</div>
      <paper-button id="automatizar" autofocus label="close" on-click="{{closeClickHandler}}"></paper-button>
    </paper-dialog>

    <paper-button id="open" autofocus label="open" on-click="{{openClickHandler}}"></paper-button>
  </template>
  <script type="application/dart" src="app_element.dart"></script>
</polymer-element>
于 2014-08-31T11:43:22.243 に答える