Skip to content

Instantly share code, notes, and snippets.

@liamfiddler
Created September 29, 2016 01:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save liamfiddler/aa434b63a16a646ac90eb01186d8d728 to your computer and use it in GitHub Desktop.
Save liamfiddler/aa434b63a16a646ac90eb01186d8d728 to your computer and use it in GitHub Desktop.
Creating a Web Component with Polymer - Part 1 - 05 Observer
<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