@@ 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 |