Angular.js:チェックボックスはユーザーによってチェックされていませんが、NG変更が必要です

StackOverflow https://stackoverflow.com//questions/23009493

質問

私は本物のチェックボックスを隠し、実際のものではなく拡張されたコンポーネントを表示するカスタム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>
.

大きな広場は偽のものです(ユーザーに表示されている)、小さな広場は本物のものです。 本物のチェックボックスはユーザーに非表示になります。

ENTER IMENT Descriptionこちら

問題は、実際の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にアクセスします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top