I've looked around stackoverflow as well as read this thread but still no success. I am trying to use iCheck in my AngularJS web app but I am still only seeing regular checkboxes. I am also using require.js. Any ideas how to get this to work?
Thanks!
HTML:
<label ng-disabled="true" style="font-weight:normal">
<input icheck type="checkbox" ng-model="permissions[0]"
ng-disabled="true" ng-checked="user.isAdmin" /> Option #1<br />
</label>
<label ng-disabled="true" style="font-weight:normal">
<input icheck type="checkbox" ng-model="permissions[1]"
ng-disabled="true" ng-checked="user.isAdmin" /> Option #2<br />
</label>
<label ng-disabled="true" style="font-weight:normal">
<input icheck type="checkbox" ng-model="permissions[2]"
ng-disabled="true" ng-checked="user.isAdmin" /> Option #3<br />
</label>
<label ng-disabled="true" style="font-weight:normal">
<input icheck type="checkbox" ng-model="permissions[3]"
ng-disabled="true" ng-checked="user.isAdmin" /> Option #4<br />
</label>
<label ng-disabled="true" style="font-weight:normal">
<input icheck type="checkbox" ng-model="permissions[4]"
ng-disabled="true" ng-checked="user.isAdmin" /> Option #5<br />
</label>
Directive (from https://github.com/ciel/icheck):
(function () {
/**
* Create a new module for icheck so that it can be injected into an existing
* angular program easily.
*/
angular.module('ui.check', [])
.directive('icheck', function ($timeout, $parse) {
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-blue',
radioClass: 'iradio_flat-blue'
}).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);
});
}
});
});
}
};
});
})();
Double check that you're loading the iCheck component in your main html file:
<script src="bower_components/iCheck/icheck.min.js"></script>