| @@ 330-370 (lines=41) @@ | ||
| 327 | }; |
|
| 328 | }]) |
|
| 329 | ||
| 330 | .directive('uibBtnCheckbox', function() { |
|
| 331 | return { |
|
| 332 | require: ['uibBtnCheckbox', 'ngModel'], |
|
| 333 | controller: 'UibButtonsController', |
|
| 334 | controllerAs: 'button', |
|
| 335 | link: function(scope, element, attrs, ctrls) { |
|
| 336 | var buttonsCtrl = ctrls[0], ngModelCtrl = ctrls[1]; |
|
| 337 | ||
| 338 | element.find('input').css({display: 'none'}); |
|
| 339 | ||
| 340 | function getTrueValue() { |
|
| 341 | return getCheckboxValue(attrs.btnCheckboxTrue, true); |
|
| 342 | } |
|
| 343 | ||
| 344 | function getFalseValue() { |
|
| 345 | return getCheckboxValue(attrs.btnCheckboxFalse, false); |
|
| 346 | } |
|
| 347 | ||
| 348 | function getCheckboxValue(attribute, defaultValue) { |
|
| 349 | return angular.isDefined(attribute) ? scope.$eval(attribute) : defaultValue; |
|
| 350 | } |
|
| 351 | ||
| 352 | //model -> UI |
|
| 353 | ngModelCtrl.$render = function() { |
|
| 354 | element.toggleClass(buttonsCtrl.activeClass, angular.equals(ngModelCtrl.$modelValue, getTrueValue())); |
|
| 355 | }; |
|
| 356 | ||
| 357 | //ui->model |
|
| 358 | element.on(buttonsCtrl.toggleEvent, function() { |
|
| 359 | if (attrs.disabled) { |
|
| 360 | return; |
|
| 361 | } |
|
| 362 | ||
| 363 | scope.$apply(function() { |
|
| 364 | ngModelCtrl.$setViewValue(element.hasClass(buttonsCtrl.activeClass) ? getFalseValue() : getTrueValue()); |
|
| 365 | ngModelCtrl.$render(); |
|
| 366 | }); |
|
| 367 | }); |
|
| 368 | } |
|
| 369 | }; |
|
| 370 | }); |
|
| 371 | ||
| 372 | angular.module('ui.bootstrap.carousel', []) |
|
| 373 | ||
| @@ 329-369 (lines=41) @@ | ||
| 326 | }; |
|
| 327 | }]) |
|
| 328 | ||
| 329 | .directive('uibBtnCheckbox', function() { |
|
| 330 | return { |
|
| 331 | require: ['uibBtnCheckbox', 'ngModel'], |
|
| 332 | controller: 'UibButtonsController', |
|
| 333 | controllerAs: 'button', |
|
| 334 | link: function(scope, element, attrs, ctrls) { |
|
| 335 | var buttonsCtrl = ctrls[0], ngModelCtrl = ctrls[1]; |
|
| 336 | ||
| 337 | element.find('input').css({display: 'none'}); |
|
| 338 | ||
| 339 | function getTrueValue() { |
|
| 340 | return getCheckboxValue(attrs.btnCheckboxTrue, true); |
|
| 341 | } |
|
| 342 | ||
| 343 | function getFalseValue() { |
|
| 344 | return getCheckboxValue(attrs.btnCheckboxFalse, false); |
|
| 345 | } |
|
| 346 | ||
| 347 | function getCheckboxValue(attribute, defaultValue) { |
|
| 348 | return angular.isDefined(attribute) ? scope.$eval(attribute) : defaultValue; |
|
| 349 | } |
|
| 350 | ||
| 351 | //model -> UI |
|
| 352 | ngModelCtrl.$render = function() { |
|
| 353 | element.toggleClass(buttonsCtrl.activeClass, angular.equals(ngModelCtrl.$modelValue, getTrueValue())); |
|
| 354 | }; |
|
| 355 | ||
| 356 | //ui->model |
|
| 357 | element.on(buttonsCtrl.toggleEvent, function() { |
|
| 358 | if (attrs.disabled) { |
|
| 359 | return; |
|
| 360 | } |
|
| 361 | ||
| 362 | scope.$apply(function() { |
|
| 363 | ngModelCtrl.$setViewValue(element.hasClass(buttonsCtrl.activeClass) ? getFalseValue() : getTrueValue()); |
|
| 364 | ngModelCtrl.$render(); |
|
| 365 | }); |
|
| 366 | }); |
|
| 367 | } |
|
| 368 | }; |
|
| 369 | }); |
|
| 370 | ||
| 371 | angular.module('ui.bootstrap.carousel', []) |
|
| 372 | ||