PolymerのペーパーダイアログをAngular2 Dartで使用できますか?私が見つけることができる唯一の議論は、質問hereでした。AngularDartで紙のダイアログを使用することができます
角度成分にコードを組み込みました。ダイアログに「$['dialogArtist']
」が表示されないようにしました。私は次に新しいクラスを作成します
$['dialogArtist]
そこで働いた。それから、フォームデータに問題がありました。それはコンポーネントではなく、ダイアログでそれを探し続けた。ダイアログhtmlは、コンポーネントhtmlと同じファイルにあります。そのため、これは何か関係があります。私がフォームをコメントアウトしたとき。ダイアログクラスの初期化ツールが見つからないと不平を言った。 Angular2 DartコンポーネントからPolymerのペーパーダイアログを開く例はありますか?
私が知る必要があるのは、ダイアログを開いてデータを取得するためにコンポーネントに配置する必要があることだけです。私は上記のリンクの例がダイアログクラスの良い例だと推測します。また、ダイアログhtmlはどこに行きますか?私の角度成分の
関連部分:
@Component(selector: 'my-artists',
templateUrl: 'artists_component.html',
//encapsulation: ViewEncapsulation.Native, // added for polymer
styleUrls: const['artist.css']
)
class ArtistsComponent implements OnInit {
...
ArtistDialog editDialog;
void ngOnInit() {
getArtists();
editDialog = new ArtistDialog.created();
}
void onEditArtist() {
editArtist = selectedArtist;
editDialog.open;
}
私のポリマー成分:
//@CustomTag('dialogArtist'); //uncomment this cause and error
class ArtistDialog extends PolymerElement {
String birth_year;
ArtistDialog.created() : super.created();
//@observable int selected = 0; // uncommenting this causes and error
void open() {
$['dialogArtist'] as PaperDialog..open();
}
}
はindex.htmlを:
<!DOCTYPE html>
<html>
<head>
<title>Jazz Cat</title>
<script>
window.Polymer = window.Polymer || {};
window.Polymer.dom = 'shadow';
</script>
<!-- For testing using pub serve directly use: -->
<base href="/">
<!-- For testing in WebStorm use: -->
<!-- <base href="/dart/web/"> -->
<link rel="import" href="packages/polymer/polymer.html">
<link rel="import" href="packages/polymer_elements/iron_flex_layout.html">
<link rel="import" href="packages/polymer_elements/paper_header_panel.html">
<link rel="import" href="packages/polymer_elements/paper_toolbar.html">
<link rel="import" href="packages/polymer_elements/paper_menu.html">
<link rel="import" href="packages/polymer_elements/paper_item.html">
<link rel="import" href="packages/polymer_elements/paper_menu_button.html">
<link rel="import" href="packages/polymer_elements/paper_input.html">
<link rel="import" href="packages/polymer_elements/paper_dialog.html">
<link rel="import" href="packages/polymer_elements/iron_list.html">
<link href="master.css" rel="stylesheet" type="text/css" />
<style is="custom-style">
これはdiaglog箱のための私のhtmlです。これはコンポーネントhtmlと同じファイルにあります。
<polymer-element name="dialogArtist">
<paper-dialog id="dialog">
<p>This is a dialog.</p>
</paper-dialog>
</polymer-element>
です。なぜ、ポリマーエレメントのコードブロックに '@ViewChild(...)'がありますか?シャドーDOMを有効にして完全なポリフィルをロードしましたか? –
ViewChildsは、ダイアログに配置するフォームのものです。フォームはコンポーネントhtmlにあったときにうまく機能しました。私はそれを有効にしていると思います。私は完全なポリフィルについては知らない。新しいArtistDialog.created()は、作成された要素をカスタム要素の作成の外側で呼び出すことができないため、機能しません。コンストラクタを追加すると、それはコンストラクタを持たないPolymerに与えられ、エラーになります。私はちょうど私がとにかく新しいここが必要であることを推測しています。 – curt
http://plnkr.co/edit/kMuyWiNfDwrLSSc3JGDx?p=preview(webcomponentsjs'スクリプトタグとインラインスクリプト)の 'index.html'を参照して、完全シャドーDOMを有効にしてください。これはDartでも同じです(ただしスクリプト代わりにポリマパッケージのパスから入手してください)。https://www.polymer-project.org/1.0/docs/devguide/settingsとこの優れたチュートリアルhttps://dart.academy/dart-angular-2-and-polymerも参照してください。 -together/ –