2017-02-02 19 views
-1

私はチェックボックス付きの検索画面を持っており、ユーザーがナビゲートして画面に戻ったときにチェックボックスの選択を保持します。 セッションストレージを使用すると、モデルの値を保持することができますが、チェックボックスがモデル値に基づいて正しく表示されません。 オンラインで検索すると、ng-modelとng-checkedを一緒に使用できないようです。しかし、私はjqueryを使いたくない。 Angularでこれを行うことは可能ですか?前もって感謝します。AngularJSチェックボックスは、ページがリロードされたときにチェック値を保持します

<div class="container" ng-controller="SearchController as vm" data-ng-init="vm.init()"> 
<form ng-submit="vm.Search()"> 
<input type="checkbox" id="chkActive" name="chkActive" value="Active" ng-model="vm.searchInput.active" ng-checked="vm.searchInput.active" /> <span>Show Active Records</span> 
<button id="searchBtn" type="submit"> 
</form> 
</div> 

角度コントローラコード:

+0

http://stackoverflow.com/questions/25000896/angularjs-checkbox-not-working/25002782#25002782 –

答えて

0

私はそれをチェックしていないが、私は最初の行が読むべき確信している:モデル値がある

vm.searchInput = { active: true}; 
+0

私の悪い、私は私の実際のコードで同じことを持っているvm.searchInput = {アクティブ:true};しかし、これは問題を解決するものではありません。 – REDDY

0

場合は、あなたはそれにバインドしたいと思うし、なぜそれが良いと知っているのですか?checkedmodelの両方が必要なのはなぜですか?値を入力にバインドするだけで十分です。以下に示すように、両方を使用するのは問題があります。

angular.module('app', []); 
 
angular.module('app').controller('c', c); 
 

 
function c() { 
 
    var self = this; 
 
    self.checked = true; 
 

 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app "app" ng-controller="c as ctrl"> 
 
    <div> 
 
    <label>Checked</label> 
 
    <input type="checkbox" ng-model="ctrl.checked" /> 
 
    <div> 
 
     <span>Checked: {{ctrl.checked}}</span> 
 
    </div> 
 
    </div> 
 
    <div> 
 
    <label>Checked Trouble</label> 
 
    <input type="checkbox" ng-model="ctrl.checked" ng-checked="!ctrl.checked" /> 
 
    <div> 
 
     <span>Checked: {{ctrl.checked}}, !Checked: {{!ctrl.checked}}</span> 
 
    </div> 
 
    </div> 
 
    <div> 
 
    <label>Checked Double Trouble</label> 
 
    <input type="checkbox" ng-checked="!ctrl.checked" ng-model="ctrl.checked" /> 
 
    <div> 
 
     <span>Checked: {{ctrl.checked}}, !Checked: {{!ctrl.checked}}</span> 
 
    </div> 
 
    </div> 
 
</div>

+0

私はモデルとチェックの両方が必要です。なぜなら、前回ユーザーが画面に表示されたものを画面に表示する必要があるからです。 – REDDY

+0

@ Reddyですが、どちらも同じ値を使用しています。ロード問題の場合は、 'ng-if = vm.loaded'またはそれに類するものを追加して、保存された値が得られるまでレンダリングを止めてください。 – ChiefTwoPencils

関連する問題