我正在建立一个聚合物1.0的联系人名单。当用户单击某个名称时,应该会打开一个(动画)页面以了解更多详细信息。所有这些数据元素都是从外部.json文件中提取的。
关于这一办法的两个问题:
( 1)从哪里开始?例如,如何将铁页或霓虹灯动画页绕在当前设置(可搜索,这也是临时原因,它是一个多址重复而不是铁列表):
<template id="resultlist" is="dom-repeat" items="{{data}}" filter="contactFilter">
<paper-item>
<paper-item-body two-line>
<div>{{item.name}}</div>
<div secondary>{{item.number}}</div>
</paper-item-body>
</paper-item>
</template>2)为了快速试用绑定选项,我创建了一个纸对话框(而不是页面行为),它显示被选中的人的进一步数据.如果要显示选定的名称,则在该纸面对话框的顶部。但是,我只在我的.json文件中获得数组的名称。如何设置代码以显示所选项的{{item.name}}?
Ps。我知道来自Rob (https://github.com/robdodson/contacts-app)的联系人应用程序,但是我不知道如何在Polymer1.0中实现它。
更新27.10.2015
在Hugo's回答之后,我无法获得在dom-模块结构中工作的解决方案。
抱歉误会了,但我不知道我哪里错了。
必须采取以下措施:
phonebook.html,,它的作用像一个索引
...
<body unresolved>
<template is="dom-bind" id="application">
<neon-animated-pages selected="[[selected]]" entry-animation="fade-in-animation" exit-animation="fade-out-animation">
<contact-list></contact-list>
<contact-details></contact-details>
</neon-animated-pages>
</template>
<script>
var application = document.querySelector('#application');
application.selected = 0;
document.addEventListener('show-details', function() {
application.selected = 1;
});
document.addEventListener('show-list', function() {
application.selected = 0;
});
</script>
</body>DOM-模块contact-list.html,列表它自己.
<dom-module id="contact-list">
<template>
<style include="phonebook-styles"></style>
<iron-ajax url="../data/data.json" handle-as="json" last-response="{{data}}" auto></iron-ajax>
<div class="container">
<h3>Contactlist:</h3>
<div class="template-container">
<template is="dom-repeat" id="templateUsers" items="{{data}}">
<paper-item on-tap="showDetails">
<paper-item-body two-line>
<div>{{item.name}}</div>
<div secondary>{{item.phonenumber}}</div>
</paper-item-body>
<div class="item-details-link">
<iron-icon icon="account-circle"></iron-icon>
</div>
</paper-item>
</template>
</div>
</div>
</template>
<script>
Polymer({
is: 'contact-list',
properties: {
selectedContact:{
type:Object,
value:function(){
return null;
}
}
},
showDetails: function(ev) {
var data = this.$.templateUsers.itemForElement(ev.target);
//alert(JSON.stringify(data)) // works with data chosen data selection...
this.selectedContact = data;
this.fire('show-details', this.selectedContact);
}
});
</script>
</dom-module>DOM-模块contact-details.html,的细节-列表.
<dom-module id="contact-details">
<template>
<!-- Do I need to declare the .json in my details module? -->
<iron-ajax url="../data/data.json" handle-as="json" last-response="{{data}}" auto></iron-ajax>
<paper-icon-button icon="arrow-back" on-tap="showList"></paper-icon-button>
<h3>Contact details</h3>
<template is="dom-repeat" items="{{data}}">
<div>{{selectedContact.name}}</div>
</template>
</template>
<script>
Polymer({
is: 'contact-details',
showList: function() {
this.fire('show-list');
}
});
</script>
</dom-module>一切,比如过渡,都是有用的。选择的联系人也会显示在alertbox中(在contact-list.html中注释掉),但不会转发到contact-details.html页面。
发布于 2015-10-21 14:39:36
实现该解决方案有多个步骤:
我检查了你处理事件的方式,反馈如下:
https://stackoverflow.com/questions/33256314
复制相似问题