Was ich möchte ist so etwas wie this Beispiel in der Dokumentation, aber mit einem eindeutigen Eingang, der die drei Rollen der Filterung von "any", "Name" oder "Telefon" Eigenschaften, die Änderung von spielen kann Rolle wird durch einen Ankerklick ausgeführt. Hier ist der Code bereit http://jsfiddle.net/ubugnu/QuyCU/ Wie kann ich das ng-Modell-Attribut dynamisch aktualisieren?angularjs: Filteroptionen dynamisch ändern
HTML
<div ng-app>
<div ng-controller="MainCtrl">
<label>Any</label> <input type="text" ng-model="search.$"> <br>
<label>Name only</label> <input type="text" ng-model="search.name"><br>
<label>Phone only</label> <input type="text" ng-model="search.phone"><br>
<div style="background-color:#FAE8F1">
<hr>
<label>Filter</label> <input type="text" ng-model="search.$"> by {{filter}} <br>
<ul>
<li><a href="" ng-click="changeFilterTo('$')">Any</a></li>
<li><a href="" ng-click="changeFilterTo('name')">By Name</a></li>
<li><a href="" ng-click="changeFilterTo('phone')">By phone</a></li>
</ul>
<hr>
</div>
<table class="table">
<tr><th>Name</th><th>Phone</th></tr>
<tr ng-repeat="friend in friends | filter:search">
<td>{{friend.name}}</td>
<td>{{friend.phone}}</td>
</tr>
</table>
</div>
</div>
JS
function MainCtrl($scope, $http) {
$scope.friends = [{name:'John', phone:'555-1276'},
{name:'Mary', phone:'800-BIG-MARY'},
{name:'Mike', phone:'555-4321'},
{name:'Adam', phone:'555-5678'},
{name:'Julie', phone:'555-8765'}];
$scope.filter = "$";
$scope.changeFilterTo = function(pr) {
$scope.filter = pr;
}
};
ausgezeichnet, vielen Dank – ubugnu
Diese nicht ganz die Arbeit, in der Geige ... versuchen, für die Suche "a" und klicke auf "Telefon". Es scheint auf "Alle" zu suchen, unabhängig von dem angeklickten Link. Ich denke, es braucht nur ein oder zwei kleine Tweaks. –
Ich denke, es funktioniert in Ordnung, aber vielleicht auf eine etwas nicht intuitive Weise (aber es demonstriert die Lösung schön) - wenn Sie auf "Any | By Name | By phone" klicken, verbindet es nur unteren Textfeld mit einem der entsprechenden oberen Textfelder . Also "a" füllt das "a" zu "Any" und klickt auf "per Telefon" schaltet unteren Textbox auf "Telefon", so nächste Eingabe Telefon Einschränkungen hinzufügen lassen "Any" beschränken allein .. – lopisan