У меня есть paper-dialog
, и в этом диалоговом окне у меня есть paper-input
с некоторым предопределенным значением, и когда я хочу изменить значение, мой диалог закрывается без видимой причины.
Мой код:
<template>
<paper-dialog entry-animation="scale-up-animation"
exit-animation="fade-out-animation"
id="bookDetailDialog"
class="bookDialog"
opened="{{opened}}">
<paper-item style="padding-left: 11px;">
<paper-icon-button
icon="icons:arrow-back"
on-tap="closeDialog">
</paper-icon-button>
</paper-item>
<paper-item>
<paper-input label="Author" value="{{book.author}}"></paper-input>
</paper-item>
...
<paper-item>
<paper-checkbox checked="{{book.dedication}}">Dedication</paper-checkbox>
</paper-item>
<paper-button raised>Lent</paper-button>
<paper-button raised>Sell</paper-button>
</paper-dialog>
</template>
<script>
Polymer({
is: 'book-dialog',
properties: {
book: {
notify: true
},
opened: {
type: Boolean,
notify: true
}
},
closeDialog: function () {
this.opened = false;
this.book = undefined;
}
});
</script>
РЕДАКТИРОВАТЬ: здесь я использую свой элемент:
<dom-module id="books-list">
<style>
span {
flex-basis: 100%;
margin: auto;
}
</style>
<template>
<book-dialog opened="{{opened}}" book="{{selected}}"></book-dialog>
<iron-list
id="bookList"
items="{{books}}"
as="book"
selection-enabled
selected-item="{{selected}}">
<template>
<paper-item>
<span>{{book.id}}</span>
<span>{{book.author}}</span>
<span>{{book.original}}</span>
<span>{{book.language}}</span>
<span>{{book.status}}</span>
</paper-item>
</template>
</iron-list>
</template>
<script>
Polymer({
is: 'books-list',
properties: {
books: {
notify: true
},
selected: {
notify: true,
obsever: '_selectionChanged'
},
opened: {
notify: true,
type: Boolean
}
},
observers: [
'_selectionChanged(selected)'
],
_selectionChanged: function () {
if (this.get('selected.id') === ''
|| this.get('selected.id') === undefined) {
this.set('opened', false);
} else {
this.set('opened', true);
}
},
_openAddBookDialog: function () {
this.fire('add-book');
}
});
</script>
</dom-module>
РЕДАКТИРОВАТЬ: я думаю, что это как-то связано с iron-list
и с изменением атрибута selected
...