Angular.js:チェックボックスはユーザーによってチェックされていませんが、NG変更が必要です
-
21-12-2019 - |
質問
私は本物のチェックボックスを隠し、実際のものではなく拡張されたコンポーネントを表示するカスタムjQuery-Pluginを持っています。
このコードの
<label for="local">
<input type="checkbox" ng-model="value" ng-change="filterByCoursePlace('test')" name="local" id="local"><span>Local</span>
</label>
.
プラグインはこのコードを生成します(チェックボックスの上にDIVを追加)
<label for="local">
<div class="jcf-class-ng-pristine jcf-class-ng-valid chk-area chk-unchecked chk-focus"><span></span></div>
<input type="checkbox" ng-model="value" ng-click="filterByCoursePlace('test')" name="local" id="local" class="ng-pristine ng-valid"><span>Local </span>
</label>
.
大きな広場は偽のものです(ユーザーに表示されている)、小さな広場は本物のものです。 本物のチェックボックスはユーザーに非表示になります。
問題は、実際のNG-CHANGEをクリックすると機能しているが、偽の1つのNG変更をクリックしたときには機能しませんが、本物のものもチェックされません。
解決 2
偽のものの上にある本物のチェックボックスを表示し、それをCSS(Opacity= 0)
で見えないようにしましたそれは完璧な解決策ではありませんがそれはうまくいった。
他のヒント
jQueryプラグインをどのくらい変更できますか?
生成されたコードにはng-click="filterByCoursePlace('test')
があり、その理由は実際のワークをクリックします。
必要なものをやるための最速の方法は、Controllerをコントローラに追加するすべてのng-change
/ ng-click
を削除することです.watch
:
$scope.$watch('value', function(newVal, oldVal) {
filterByCoursePlace('test')
});
.
またはプラグインの生成方法を変更できる場合は、Real Oneの代わりにng-click
を偽のチェックボックスに追加できます。
とにかく、filterByCoursePlace
が別の関数によって( 'resetfilters'ボタンのように)変更されたときにvalue
をトリガーしたい場合は、$scope.$watch
Wayにアクセスします。
所属していません StackOverflow