polymer 1.0 dom-repeat filter only runs once
来源:互联网 发布:centos输入中文 编辑:程序博客网 时间:2024/06/10 02:47
http://stackoverflow.com/q/31857241/2177408
When I change the year using the drop-down, I want the list to re-filter and display the info for that chosen year. What am I missing? Changing the year does not re-filter the dom-repeat.
<!DOCTYPE html><html><head> <meta charset="utf-8"> <base href="http://polygit.org/components/"> <script src="webcomponentsjs/webcomponents-lite.min.js"></script> <link href="polymer/polymer.html" rel="import"> <title>dropdown</title> <link rel="import" href="http://polygit.org/components/paper-menu/paper-menu.html"> <link rel="import" href="http://polygit.org/components/paper-item/paper-item.html"> <link rel="import" href="http://polygit.org/components/paper-button/paper-button.html"> <link rel="import" href="http://polygit.org/components/paper-menu-button/paper-menu-button.html"> <style> .taller{ height:120px; } [vertical-align="top"] ul { margin-top: 0; } [vertical-align="bottom"] ul { margin-bottom: 0; } button, paper-button { border: 1px solid #ccc; background-color: #eee; /*padding: 1em;*/ border-radius: 3px; cursor: pointer; } button:focus { outline: none; border-color: blue; } </style></head><body> <dom-module id="x-demo"> <template> <div class="horizontal-section flex layout horizontal taller"> <paper-menu-button> <paper-button icon="menu" class="dropdown-trigger"><span>Year<br/></span><span>{{year}}</span></paper-button> <paper-menu id="selectedYear" class="dropdown-content" selected="{{selectedIndex}}"> <template is="dom-repeat" items="{{allData}}"> <paper-item on-tap='yearTapped'>{{item.year}}</paper-item> </template> </paper-menu> </paper-menu-button> <paper-menu-button> <paper-button icon="menu" class="dropdown-trigger"><span>Make<br/></span><span>{{make}}</span></paper-button> <paper-menu id="selectedMake" class="dropdown-content" selected="{{selectedIndex}}"> <template is="dom-repeat" items="{{allData}}"> <paper-item on-tap='makeTapped'>{{item.make}}</paper-item> </template> </paper-menu> </paper-menu-button> <paper-menu-button> <paper-button icon="menu" class="dropdown-trigger"><span>Model<br/></span><span>{{model}}</span></paper-button> <paper-menu id="selectedModel" class="dropdown-content" selected="{{selectedIndex}}"> <template is="dom-repeat" items="{{allData}}"> <paper-item on-tap='modelTapped'>{{item.model}}</paper-item> </template> </paper-menu> </paper-menu-button> <paper-menu-button> <paper-button icon="menu" class="dropdown-trigger"><span>Engine<br/></span><span>{{engine}}</span></paper-button> <paper-menu id="selectedEngine" class="dropdown-content" selected="{{selectedIndex}}"> <template is="dom-repeat" items="{{allData}}"> <paper-item on-tap='engineTapped'>{{item.engine}}</paper-item> </template> </paper-menu> </paper-menu-button> </div> <div>Vehicle list filtered by selected year: </div> <template is="dom-repeat" id="vehicleList" items="{{allData}}" filter="yearMatch" observe="year item.year"> <div>Year <span>{{item.year}}</span></div> <div>Make <span>{{item.make}}</span></div> <div>Model <span>{{item.model}}</span></div> <div>Engine <span>{{item.engine}}</span></div> <button on-click="toggleSelection">Select</button> </template> <array-selector id="selector" items="{{allData}}" selected="{{selected}}" multi toggle></array-selector> <div>Selected vehicle: </div> <template is="dom-repeat" items="{{selected}}"> <div><span>{{item.year}}</span></div> <div><span>{{item.make}}</span></div> <div><span>{{item.model}}</span></div> <div><span>{{item.engine}}</span></div> </template> </template> <script> Polymer({ is: 'x-demo', properties:{ allData:{type:Array, value: function() { return [{year:'2015',make:'HONDA',model:'CB300F',engine:'300cc'}, {year:'2014',make:'HONDA',model:'CBR300R',engine:'300cc'}]; } }, year:{type:String,value:'2014',notify:true} }, observers: [ 'yearChanged(year)' ], yearChanged: function(item) { console.log(item); this.set('item.year', item); this.$.vehicleList.render(); }, yearMatch: function(item) { console.log('year checked'); return item.year = this.year; }, toggleSelection: function(e) { var item = this.$.vehicleList.itemForElement(e.target); this.$.selector.select(item); }, yearTapped: function(e) { this.year=e.target.innerText; }, makeTapped: function(e) { this.make=e.target.innerText; }, modelTapped: function(e) { this.model=e.target.innerText; }, engineTapped: function(e) { this.engine=e.target.innerText; } }); </script> </dom-module> <x-demo></x-demo></body></html>
I have similar question, but it is just because I don't have the "this.$.vehicleList.render();" in my code. Thanks for your code! – shaosh
I have similar question, but it is just because I don't have the "this.$.vehicleList.render();" in my code. Thanks for your code! – shaosh
0 0
- polymer 1.0 dom-repeat filter only runs once
- Once-Only Headers
- you only look once
- ng-repeat filter
- Polymer 1.0 升级指南
- Polymer
- You only look once:YOLO
- Polymer - Pass dom-repeated item inside on-click function
- common lisp中once-only 宏
- No. 13 - First Character Appearing Only Once
- YOLO:You Only Look Once 论文阅读
- BulkWrite objects may only be executed once
- You Only Look Once论文中文翻译
- Error: Finish can only be called once
- You Only Look Once-论文笔记
- 【目标检测】YOLO: You Only Look Once
- angular中filter查询与ng-repeat
- Find the elements in the set that appears only once
- H5元素以及属性
- 23种设计模式(3)--singleton模式
- 系统业务进化重构之数据迁移--落地思考
- 静态方法与非静态方法的区别
- js 通过userAgent判断是安卓还是ios
- polymer 1.0 dom-repeat filter only runs once
- 散步的路上
- 真实大起底:一名黑马程序员的就业经历
- The Three Most Important Things You Look for in Your Employment Relationship
- UDP广播服务(修改)
- callback to handle completion of pipe
- tb740605_2012
- 软件开发过程-Python集成开发环境
- Caffe中卷基层和全连接层训练参数个数如何确定