我可以按输入字段对列表进行排序,以按用户显示目标。但是我无法通过单击用户列表中的名称来完成同样的事情。
在输入字段中输入学生姓名可以正常工作。
<div id="goalcontent">
<ul id="listheader">
<li>
<p>Student Name: <input data-ng-model="username"></p>
</li>
</ul>
<ul class="goals">
<li class="{{goal.status}}" ng-repeat="goal in goals | filter:username" >
<span class="goaldeadline">{{goal.username}}</span>
<span class="goaltitle">{{goal.goal}}</span>
</li>
</ul>
</div>
这是我给用户的 ng-repeat。ng-click 用于在被点击的 li 上设置一个类。这很好用。我也可以在点击时捕获用户名并进入 setSelected 函数。类更改发生得很好,但是我无法让用户名对列表进行排序。我确定这是一个范围界定的事情,但我无处可去。
<div id="usercontent">
<ul class="users">
<li ng-repeat="user in users" ng-click="setSelected(this)" class={{selected}}><span>{{user.firstname}} {{user.lastname}}</span></li>
</ul>
</div>
这是我的 setSelected 函数。
$scope.setSelected = function (username) {
var lastSelected = ''
if ($scope.lastSelected) {
$scope.lastSelected.selected = '';
}
this.selected = 'selected';
$scope.lastSelected = this;
username = (this.user.username);
console.log(username);
};
控制台正确显示我的用户名。但是我尝试过的任何方法都无法使用它来对目标列表进行排序。