<!DOCTYPE html>
<html ng-app="plunkr">
<head>
<link data-require="bootstrap-css@3.x" data-semver="3.1.1" rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" />
<script data-require="angular.js@*" data-semver="1.3.0-beta.5" src="https://code.angularjs.org/1.3.0-beta.5/angular.js"></script>
<script data-require="ui-bootstrap@*" data-semver="0.10.0" src="http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.10.0.js"></script>
<script data-require="angular-animate@*" data-semver="1.2.16" src="http://code.angularjs.org/1.2.16/angular-animate.js"></script>
<script data-require="angular-resource@*" data-semver="1.2.14" src="http://code.angularjs.org/1.2.14/angular-resource.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
<h3>This works</h3>
<div class="content" ng-controller="MainCtrl">
<div class="details" ng-show="showDetails">
<label for="">Seach Names</label>
<input type="text" ng-model="searchText" />
</div>
<a ng-click="showDetails = ! showDetails"> Click Me</a>
<div ng-repeat="friend in friends | filter:searchText | limitTo: 5">
{{friend.name}}
</div>
</div>
<h3>This doesn't as search is outside 'MainCtrl'</h3>
<p>How can I get this to work?</p>
<div class="details" ng-show="showDetails">
<label for="">Seach Names</label>
<input type="text" ng-model="searchText" />
</div>
<div class="content" ng-controller="MainCtrl">
<a ng-click="showDetails = ! showDetails"> Click Me</a>
<div ng-repeat="friend in friends | filter:searchText | limitTo: 5">
{{friend.name}}
</div>
</div>
</body>
</html>
var app = angular.module('plunkr', ['ngResource','ngAnimate','ui.bootstrap']);
app.factory('friendsFactory', function($resource) {
return $resource('friends.json');
});
app.controller('MainCtrl', function ($scope, friendsFactory) {
$scope.friends = friendsFactory.query();
});
/* Styles go here */
.ng-hide-add, .ng-hide-remove {
display: block !important;
}
.details{
background: tomato;
padding: 0 15px;
height: 40px;
padding-top: 4px;
overflow: hidden;
font-weight: bold;
color: #f7f7f7;
transition: all 600ms ease-in-out;
}
.details.ng-hide {
height:0;
}
input{
height:32px;
color: #555;
outline:0;
border:0;
border-radius: 4px;
}
[
{"name":"Jack"},
{"name":"Tim"},
{"name":"Stuart"},
{"name":"Tom"},
{"name":"Frank"},
{"name":"Ted"},
{"name":"Michael"},
{"name":"Albert"},
{"name":"Tobby"},
{"name":"Mick"},
{"name":"Nicholas"},
{"name":"Jesse"},
{"name":"Lex"},
{"name":"Robbie"},
{"name":"Jake"},
{"name":"Levi"},
{"name":"Edward"},
{"name":"Neil"},
{"name":"Hugh"},
{"name":"Hugo"},
{"name":"Yanick"},
{"name":"Matt"},
{"name":"Andrew"},
{"name":"Charles"},
{"name":"Oliver"},
{"name":"Robin"},
{"name":"Harry"},
{"name":"James"},
{"name":"Kelvin"},
{"name":"David"},
{"name":"Paul"}
]