ユーザーごとに目標を表示するために、入力フィールドでリストを並べ替えることができます。しかし、ユーザーリストの名前をクリックしても同じことはできませんでした。
入力フィールドに生徒の名前を入力しても問題ありません。
<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);
};
コンソールにユーザー名が正しく表示されます。しかし、私が試したことはありませんが、それを使用して目標のリストを並べ替えることができませんでした.