Created
September 29, 2016 01:24
-
-
Save liamfiddler/aa434b63a16a646ac90eb01186d8d728 to your computer and use it in GitHub Desktop.
Creating a Web Component with Polymer - Part 1 - 05 Observer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<link rel="import" href="../polymer/polymer.html"> | |
<!-- | |
`my-listfilter` | |
A filterable list component | |
@demo demo/index.html | |
--> | |
<dom-module id="my-listfilter"> | |
<template> | |
<style> | |
:host { | |
display: block; | |
} | |
.hidden { | |
display: none; | |
} | |
</style> | |
<input value="{{prop1::input}}" /> | |
<h2>Hello [[prop1]]</h2> | |
<ul id="list"> | |
<li>Hypertext Markup Language</li> | |
<li>Cascading Style Sheets</li> | |
<li>Javascript</li> | |
<li>Web Components</li> | |
<li>Polymer</li> | |
<li>Web Browser</li> | |
<li>Mentally Friendly</li> | |
</ul> | |
</template> | |
<script> | |
Polymer({ | |
is: 'my-listfilter', | |
properties: { | |
prop1: { | |
type: String, | |
value: '', | |
observer: 'filterList' | |
}, | |
}, | |
filterList: function() { | |
var items = this.$.list.children; | |
for (var i = 0; i < items.length; i++) { | |
var item = Polymer.dom(items[i]); | |
if (item.textContent.includes(this.prop1)) { | |
item.classList.remove('hidden'); | |
} else { | |
item.classList.add('hidden'); | |
} | |
} | |
} | |
}); | |
</script> | |
</dom-module> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment