2016-03-28 36 views
2

Aşağıdaki kod parçasında çoklu seçim açılan bir menü uyguladık. İyi çalışıyor gibi görünüyor. Bununla birlikte, bir öğeyi her seçtiğimde menü kapanır. Kullanıcı 'bitti' düğmesini tıklayana kadar menünün açık kalmasını isterim.Çoklu seçim kağıt açılır menüsünde menüyü kapatın. Polimer 1.0

Tuhaf bir şekilde, bir öğeyi seçimini kaldırırsam menü açık kalır, ancak bir öğe seçtiğimde kapanır. paper-dropdown-menu yılında menüsünün açık kapanışta/içinde

html, body { 
 
    height: 100%; 
 
} 
 

 
body { 
 
    overflow: hidden; 
 
    margin: 0; 
 
    font-family: RobotoDraft, 'Helvetica Neue', Helvetica, Arial; 
 
    -webkit-tap-highlight-color: rgba(0,0,0,0); 
 
    -webkit-touch-callout: none; 
 
} 
 

 
paper-button { 
 
    margin: 20px; 
 
}
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<meta charset=utf-8 /> 
 
<title>Polymer</title> 
 
<base href="http://polygit.org/components/"> 
 
<script src="webcomponentsjs/webcomponents-lite.min.js"></script> 
 

 
<link rel="import" href="paper-item/paper-item.html"> 
 
<link rel="import" href="paper-dropdown-menu/paper-dropdown-menu.html"> 
 
<link rel="import" href="paper-menu/paper-menu.html"> 
 

 
</head> 
 
<body> 
 
<foo-drop ></foo-drop> 
 

 
<dom-module id="foo-drop"> 
 

 
<template> 
 
    <paper-dropdown-menu label="Your favourite pastry"> 
 
     <paper-menu id="myMenu" class="dropdown-content" multi> 
 
      <paper-item>Croissant</paper-item> 
 
      <paper-item>Donut</paper-item> 
 
      <paper-item>Financier</paper-item> 
 
      <paper-item>Madeleine</paper-item> 
 
     </paper-menu> 
 
    </paper-dropdown-menu> 
 

 
</template> 
 
<script> 
 
    Polymer({ 
 
     is: "foo-drop", 
 
       ready: function() { 
 
        window.addEventListener('WebComponentsReady', function() { 
 
         var menu = document.querySelector("#myMenu"); 
 
         menu.addEventListener("iron-select", function(e, detail){ 
 
          console.log(menu.selected); 
 
          console.log(menu.selectedItems.length); 
 
          for (var i = 0; i < menu.selectedItems.length; i++) 
 
           console.log(menu.selectedItems[i].value); 
 
         }); 
 
        }); 
 

 
       } 
 
      }); 
 
</script> 
 
</dom-module> 
 

 
</body> 
 
</html>

cevap

2

kontrol paper-menu-button kullanır. https://github.com/PolymerElements/paper-dropdown-menu/blob/master/paper-dropdown-menu.html#L150

Belirtim belirtimleri ignoreSelect için true olarak ayarlanır. https://elements.polymer-project.org/elements/paper-menu-button

Orada bu https://github.com/PolymerElements/paper-menu-button/issues/58

üzerinde bir hata olduğunu Ama belki ortamınızda çalışır (en azından Chrome ve Firefox çalışır). Kontrol eğer https://elements.polymer-project.org/elements/paper-menu-button?view=demo:demo/index.html&active=paper-menu-button

"çoklu seçim ile Kağıt Menü" ignore-select eserler Eğer varsa, o zaman paper-dropdown-menu aldığım paper-menu-button yatan ve ignoreSelect = true set; `Bu özelliği açığa

this.$.id_my-paper-dropdown-menu.$.menuButton.ignoreSelect = true; 
+1

Bazı biri açtı bir konu:

<paper-dropdown-menu id="id_my-paper-dropdown-menu"> 

seti ignoreSelect ile

böyle bir şey (Ben esas Dart çerçevesinde çalışmak) ile ayarlanmalıdır paper-drowdown-menu': https://github.com/PolymerElements/paper-dropdown-menu/issues/53?_pjax=%23js-repo-pjax-container –

+0

Harika. Spesifikasyonlardan destek verilmedi, bu yüzden konulara bakmadım, ancak çözüm önerdiğim ile aynıydı. Sadece bunu kağıt-menü düğmesine ekleyerek, bunun üzerinde düzenli bir hata var. –

İlgili konular