2014-11-15 13 views
1

대화 상자를 생성하고 렌더링합니다. 그러나 창이 작 으면 부모에 의해 숨겨 질 수 있습니다. PaperDialog에 계층화 된 특성을 시도했지만 도움이되지 않는 특성을 계층화했습니다.종이 대화 상자를 최상위 창으로 강제 설정

others.html

<!DOCTYPE html> 

<link href='../../../../packages/polymer/polymer.html' rel='import' > 

<link href='../../../../packages/bwu_datagrid/bwu_datagrid.html' rel='import' > 
<link href='../../../../packages/paper_elements/paper_input.html' rel='import' > 

<polymer-element name='others-form'> 
    <template> 
    <paper-input floatinglabel multiline 
     id = 'description'> 
    </paper-input> 
    </template> 

    <script type='application/dart' src='others_form.dart'></script> 
</polymer-element> 

others.dart

import 'package:polymer/polymer.dart'; 

import 'package:vacuum_persistent/persistent.dart' show PersistentMap; 
import 'package:clean_data/clean_data.dart' show DataMap; 


import 'package:epimss_shared/shared_event.dart' show eventBus, 
    PersistentMapEvent; 


@CustomTag('others-form') 
class OthersForm extends PolymerElement 
{ 

    @observable String z = '3'; 

    @observable DataMap<String, dynamic> selections; 

    String errorMsg; 


    OthersForm.created() : super.created(); 

    @override 
    void attached() 
    { 
    super.attached(); 

    selections = new DataMap<String, dynamic>.from({}); 

    eventBus.on(PersistentMapEvent, (event) 
     { 
     switch(event.topic) 
     { 
      case 'shared|description-form --> lab|routine-culture-rqst': 
      selections[ 'other' ] = event.pmap[ 'description' ]; 
      break; 
     } 
     }); 

    /* 
    selections.onChange.listen((changeset) 
     { 
     if ((selections.length == 1 && !selections.containsKey('other')) || 
       selections.containsKey('other')) 
     { 
      eventBus.signal(
       new PersistentMapEvent (
       new PersistentMap<String, String>.fromMap(selections)) 
        ..topic = this.dataset[ 'topic' ]); 
     } 
    }); 
    * 
     */ 
    } 
} 

ssss_form.html

 <!DOCTYPE html> 

     <link href='../../../../packages/polymer/polymer.html' rel='import'> 

     <link href='../../../../packages/paper_elements/paper_icon_button.html' rel='import' > 
     <link href='../../../../packages/paper_elements/paper_shadow.html' rel='import'> 
     <link href='../../../../packages/paper_elements/paper_button.html' rel='import'> 
     <link href='../../../../packages/paper_elements/paper_dialog_transition.html' rel='import'> 
     <link href='../../../../packages/paper_elements/paper_dialog.html' rel='import'> 

     <link href='../../../../packages/html_components/input/select_item.html' rel='import'> 
     <link href='../../../../packages/html_components/input/select_checkbox_menu.html' rel='import'> 

     <link href='others_form.html' rel='import'> 

     <polymer-element name='ssss-form'> 

      <template>  

      <div layout horizontal> 
       <div layout vertical 
       id='specimen-div' 
       class='card'> 

        <h-select-checkbox-menu 
        label='Specimen' 
        on-selectionchanged='{{onSelectionChangedFiredSpecimen}}'> 
        <template repeat='{{key in specimens.keys}}'> 
         <h-select-item 
         label='{{key}}' 
         value='{{specimens[key]}}'> 
         </h-select-item> 
        </template> 
        </h-select-checkbox-menu> 
       </div> 

       <paper-shadow z='{{z}}'></paper-shadow> 
       </div> 

       <paper-dialog 
       id='other-dialog' 
       heading='Other' 
       transition='paper-dialog-transition-center'> 
       <others-form> </others-form> 

       <paper-button dismissive 
        label='More Info...' > 
       </paper-button> 
       <paper-button affirmative 
        label='Cancel'> 
       </paper-button> 
       <paper-button affirmative autofocus 
        label='Accept'> 
       </paper-button> 
       </paper-dialog> 
      </template> 
      <script type='application/dart' src='ssss_form.dart'></script> 
     </polymer-element> 

ssss_form.dart

수입 '

package:polymer/polymer.dart'; 

import 'dart:html'; 

import 'package:paper_elements/paper_dialog.dart'; 

import 'package:html_components/html_components.dart' show SelectCheckboxMenuComponent; 

import 'package:vacuum_persistent/persistent.dart' show PersistentMap; 
import 'package:clean_data/clean_data.dart'; 

import 'package:epimss_shared/shared_transformers.dart' show CheckboxMenuItemsConverter; 


@CustomTag('ssss-form') 
class SsssForm extends PolymerElement with CheckboxMenuItemsConverter 
{ 
    DataSet<DataMap> selections; 
    DataMap<String, dynamic> specimenSelections; 
    PersistentMap<String, Map> pmap; 

    @observable 
    Map<String, dynamic> specimens = toObservable(
    { 
     'CSF': 'CSF', 
     'Other': 'Other' 
    }); 

    @observable String specimen = ''; 
    @observable String z = '3'; 

    var sideForm; 

    SsssForm.created() : super.created(); 

    void onSelectionChangedFiredSpecimen(Event event, var detail, 
           SelectCheckboxMenuComponent target) 
    { 
    var list = getItemModels(target.selectedItems); 

    specimenSelections.clear(); 

    list.forEach((item) 
     { 
     specimenSelections[item.label] = item.selected; 

     /// Checks if [item] selected is equal to 'Other' and if so creates a 
     /// a dialogue to make the selection 
     if (item.label == 'Other') 
     { toggleDialog('paper-dialog-transition-center'); } 

     }); 
    } 

    toggleDialog(transition) => $['other-dialog'].toggle(); 



    @override 
    void attached() 
    { 
    super.attached(); 

    specimenSelections = new DataMap<String, dynamic>.from({}); 

    selections = new DataSet<DataMap>.from([specimenSelections]); 
    } 
} 

others.html 대화의 내용입니다 - 후자는 ssss_form.html 파일에 호스팅됩니다. 'Specimen'드롭 다운의 'Others'체크 박스를 클릭하면 대화 상자가 트리거됩니다. 응용 프로그램이 첨부 된 그림을 참조하십시오

Attributes on ssss-form were data bound prior to Polymer upgrading the element. This may result in incorrect binding types. (:1) 
The "label" property is deprecated. (http://localhost:8080/polymer_bug.html:7467) 
The "label" property is deprecated. (http://localhost:8080/polymer_bug.html:7467) 
The "label" property is deprecated. (http://localhost:8080/polymer_bug.html:7467) 
The "label" property is deprecated. (http://localhost:8080/polymer_bug.html:7467) 
The "label" property is deprecated. (http://localhost:8080/polymer_bug.html:7467) 
The "label" property is deprecated. (http://localhost:8080/polymer_bug.html:7467) 

를 실행할 때

은 또한 다음을 얻는다.

덕분에 enter image description here

답변

0

난 당신이 그냥 페이지에있는 다른 모든 HTML 요소보다 zIndex CSS 속성에 더 높은 값을 설정할 필요가 있다고 생각합니다.

+0

너무 쉽습니다. 군터! 오류에 대한 계정이 무엇이라고 생각하십니까? –

+0

이전에 '요소를 업그레이드하기 전에 데이터에 바인딩 된 데이터'였지만 Google 검색에서 http://stackoverflow.com/questions/23870541을 가져 왔습니다. deprecated 메시지는'paper-button' 엘리먼트로부터 온 것이다. 'label' 속성 대신에' 라벨 텍스트를 내용으로 추가하십시오. 맞춤 버튼 내용 'https : /www.polymer-project.org/docs/elements/paper-elements.html#paper-button. 이것은 이전 업데이트와 함께 변경되었으며 오래된 방법은 곧 완전히 제거됩니다. –

+0

어려운 질문을 위해 노력하지 않아도됩니다 ;-) –