3

Angularjs アプリに問題があり、どこに問題があるのか​​わかりません。

plunkerで確認してくださいここ

ボタンをクリックすると、iCheck() プラグインが実行されるはずですが、実行されません

4

2 に答える 2

9

より優れた iCheck ディレクティブは、https ://github.com/fronteed/iCheck/issues/62 (wajatimur)にあります。

return {
    require: 'ngModel',
    link: function($scope, element, $attrs, ngModel) {
        return $timeout(function() {
            var value;
            value = $attrs['value'];

            $scope.$watch($attrs['ngModel'], function(newValue){
                $(element).iCheck('update');
            })

            return $(element).iCheck({
                checkboxClass: 'icheckbox_flat-aero',
                radioClass: 'iradio_flat-aero'

            }).on('ifChanged', function(event) {
                if ($(element).attr('type') === 'checkbox' && $attrs['ngModel']) {
                    $scope.$apply(function() {
                        return ngModel.$setViewValue(event.target.checked);
                    });
                }
                if ($(element).attr('type') === 'radio' && $attrs['ngModel']) {
                    return $scope.$apply(function() {
                        return ngModel.$setViewValue(value);
                    });
                }
            });
        });
    }
};
于 2014-04-07T23:21:12.850 に答える
1

すべてを機能させるには、AngularJS が実際に jQuery を使用するように強制する必要があります。

AngularJS のソース コードには jQlite が含まれていますが、jQuery とは異なります。angular.js のに jQuery を含めると、Angular は独自の実装の代わりにそれを使用します。

したがって、index.html でこれを変更するだけです。

<script data-require="jquery@*" data-semver="2.0.3" src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<script data-require="angular.js@*" data-semver="1.2.9" src="http://code.angularjs.org/1.2.9/angular.js"></script>

(jQuery は angular.js の前です)

働くプランカー

于 2014-01-21T08:03:09.643 に答える