我正在使用angular.js很短的时间,有时候我有一种感觉,我对html和javascript一无所知,因为在我想象中应该按照角色的几率,而且可能非常简单。
这是我的头痛:
我的电流控制器scope.persons是工厂从后端获得的人员名单。 它很好地显示了ng-repeat和带输入的过滤器:
<input ng-model='query.firstname'> // search by firstname
<input ng-model='query.lastname'> // search by lastname
<ul>
<li ng-repeat='person in persons | filter: query'> firstname: {{person.firstname}}, lastname: {{person.lastname}}
</ul>
但我希望能够选择应该过滤的内容。
类似的东西:
<select>
<option value='query.firstname'> by firstname </option>
<option value='query.lastname'> by lastname </option>
我试图在很多方面搞乱,我很尴尬地表示:),但我失去了如何连接选择输入ng-model ...
提前感谢您的帮助。
答案 0 :(得分:3)
您可以尝试这种方法。 HTML:
<select ng-model="filter">
<option value='firstname'>by firstname </option>
<option value='lastname'>by lastname </option>
</select>
<input ng-model='query'>
<ul>
<li ng-repeat='person in persons | filter: getFilter()'> firstname: {{person.firstname}}, lastname: {{person.lastname}}
</ul>
并在控制器中动态构建过滤器表达式:
$scope.getFilter = function() {
var filter = {};
filter[$scope.filter] = $scope.query;
return filter;
};