web-dev-qa-db-ja.com

プログラムでチェックボックスをオフにする方法は?

プログラムでチェックボックスをオフにします。私はjavascriptでそれをどのように知っていますが、角度を使用しているので、私はそれが異なると思います。

Jsfiddleのリンクは次のとおりです。 https://jsfiddle.net/TKVH6/499/

Jsfiddleを使用したのはこれが初めてなので、スクリプトとhtmlが表示されない場合はお知らせください。

これはhtmlです

<input type="checkbox" ng-model="v" ng-click="checkAll()" />
<button ng-click="x()">eto</button>

これは角度です

$scope.x = function () {
    $scope.v.checked=false;
};

私はこのような質問がたくさんあることを知っています、私はすでにそれらを試しましたが、私はそれを働かせることができません。

ありがとう!

10
user3714598

最初の事柄:ulでコントローラーを指定し、ulの外側のボタンのクリックイベントをバインドしたため、divでng-controllerを移動しました。

2番目のこと:実際にそれを確認するには、$scope.Items[i].Selected = true;を設定する必要があります

$scope.x = function () {
    alert("x");
    $scope.Items[0].Selected=true;
};

宣言していないのにItems [i]のSelectedプロパティを設定する必要があるのはなぜですか?

その背後にある理由は、HTMLバインディングが次のようなものだからです。

<li ng-repeat="item in Items">
    <label>{{item.Name}}
        <input type="checkbox" ng-model="item.Selected" />
    </label>
</li>

ここで、すべてのアイテムはItems配列の要素です。つまり、チェックボックスでチェックされた値は、そのオブジェクトの選択されたプロパティにバインドされます。 Itemsコレクションでそのプロパティを定義していない場合でも、angularはそれを作成し、そのプロパティにバインドします。したがって、そのプロパティを設定する必要があります。

作業フィドル=> link

11
Jenish Rabadiya
<input type="checkbox" ng-checked="v" ng-click="checkAll()" />

コントローラーで

$scope.v = true; // or false
14
Murali VP