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)
를 실행할 때
은 또한 다음을 얻는다.
덕분에
너무 쉽습니다. 군터! 오류에 대한 계정이 무엇이라고 생각하십니까? –
이전에 '요소를 업그레이드하기 전에 데이터에 바인딩 된 데이터'였지만 Google 검색에서 http://stackoverflow.com/questions/23870541을 가져 왔습니다. deprecated 메시지는'paper-button' 엘리먼트로부터 온 것이다. 'label' 속성 대신에' 라벨 텍스트를 내용으로 추가하십시오. 맞춤 버튼 내용 paper-button>'https : /www.polymer-project.org/docs/elements/paper-elements.html#paper-button. 이것은 이전 업데이트와 함께 변경되었으며 오래된 방법은 곧 완전히 제거됩니다. –
어려운 질문을 위해 노력하지 않아도됩니다 ;-) –