Skip to content

Instantly share code, notes, and snippets.

@akisvolanis
Created June 6, 2014 09:32
Show Gist options
  • Save akisvolanis/f535c8cff74cf08711c1 to your computer and use it in GitHub Desktop.
Save akisvolanis/f535c8cff74cf08711c1 to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
<link rel="stylesheet" href="http://getbootstrap.com/dist/css/bootstrap.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://builds.emberjs.com/handlebars-1.0.0.js"></script>
<script src="http://builds.emberjs.com.s3.amazonaws.com/ember-1.0.0-rc.7.js"></script>
</head>
<body>
<script type="text/x-handlebars">
{{input type="text" class="form-control" placeholder="Live search by name (case insensitive)" value=query}}
<table class="table table-striped table-hover table-condensed">
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
{{#each item in filteredContent}}
<tr>
<td>
{{item.name}}
</td>
</tr>
{{/each}}
</tbody>
</table>
</script>
</body>
</html>
App = Ember.Application.create();
App.ApplicationRoute = Ember.Route.extend({
model: function () {
// returns [{ "name" : "Test Name", ... }]
return $.getJSON('http://jsbin.com/igosav/1');
}
});
App.ApplicationController = Ember.ArrayController.extend({
queryChanged: function() {
var filteredResults = this.content.filter(function (item) {
return (item.name.toLowerCase().indexOf(this.get('query').toLowerCase()) !== -1);
}.bind(this));
this.set('filteredContent', filteredResults);
}.observes('query'),
filteredContent: function() {
return this.content;
}.property('@each.content')
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment