我已经查看了 stackoverflow 并阅读了这个线程,但仍然没有成功。我正在尝试在我的 AngularJS Web 应用程序中使用 iCheck,但我仍然只看到常规复选框。我也在使用require.js。任何想法如何让它发挥作用?
谢谢!
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>
指令(来自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);
});
}
});
});
}
};
});
})();