web-dev-qa-db-ja.com

Angularjs:チェックボックスとng-change

Ng-changeの仕組みを理解するのに問題があります。オークションに参加するよう招待するユーザーのリストがあります。チェックボックスを使用してこれを実行します。ユーザーがチェックされている場合は、その名前を配列に保存する必要があります。そして後で私はそれらを招待します(私はこれを行う方法を知っています)。しかし、私はチェックボックスの使い方がわかりません。私はこのようなことをしました:

<ul class="list-group" ng-repeat="user in users">
    <li class="list-group-item" ng-hide="user.name == profile">
        <img ng-src="{{user.img}}" class="image2" >
        <div class="username"> {{user.name}}</div>
        <div class="userrole"> {{user.role}} </div>
        <div class="usercompany">{{user.company}}</div>
        <input type="checkbox"  ng-model="isChecked" ng-change="insertinvited(user.name)">
    </li>
</ul>

そして私のコントローラーで:

$scope.invited = [];
$scope.insertinvited= function (name) {
    if($scope.isChecked){
        $scope.invited.Push(name)
    } else {
        console.log($scope.invited);
    }
};

しかし、これは機能していません。コンソールでは、配列は常に空です。

4
mpeg90

これを使って

<input type="checkbox" id="{{'j' + $index}}" name="{{'j' + $index}}" ng-model="tasks.Checked" ng-change="checkinTask(tasks)"

コントローラからのこのパーツ。

$scope.checkinTask = function (task) {

                        if (task.Checked === true) {
                            task.Lineclass = "checkedTask";
                            $scope.disabled = false;
                            trash.removeClass("disabled");
                        } else {
                            task.Lineclass = "";
                        }
                        var checkedExist = false;
                        tasks.forEach(function (v) {
                            if (v.Checked) {
                                checkedExist = true;
                            }
                        });
                        if (!checkedExist) {
                            $scope.disabled = true;
                            trash.addClass("disabled");
                        }
                    };
0