2

ルートを介して ( angular を使用して) いくつかの非角度ライブラリ (jQuery + css ファイル) を遅延ロード ($ocLazyLoad) しようとしていますui.router

このコード スニペットでは、iCheckライブラリをロードしようとしています。InputsCtrl

ここに私の設定があります:

            .state('dashboard.inputs', {
                url: "/elements/inputs",
                templateUrl: templateProvider.getTemplate('inputs'),
                controller: 'InputsCtrl',
                controllerAs: 'inputs',
                resolve: {
                    loadPlugin: function ($ocLazyLoad) {
                        return $ocLazyLoad.load([
                            {
                                files: [
                                    'bower_components/iCheck/skins/polaris/polaris.css',
                                    'bower_components/iCheck/icheck.min.js'
                                ]
                            }
                        ]);
                    }
                }
            })

そして、それは次のエラーを引き起こしています:

ここに画像の説明を入力

ここに私の空のコントローラーがあります:

(function () {
    'use strict';

    angular
        .module('mega-app')
        .controller('InputsCtrl', ctrl);

    function ctrl() {
        var vm = this;

    }

})();

そして、ここに私が使用しているディレクティブがあります:

(function () {
    'use strict';

    angular
        .module('mega-app')
        .directive('icheck', icheck);

    function icheck($timeout) {
        return {
            restrict: 'A',
            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_square-green',
                        radioClass: 'iradio_square-green'

                    }).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);
                            });
                        }
                    });
                });
            }
        };
    }
})();
4

0 に答える 0