Toggle with unit test

This commit is contained in:
Max Lynch
2013-10-11 12:56:59 -05:00
parent 0b375d4eb9
commit 094af5fe2e
12 changed files with 137 additions and 124 deletions

View File

@ -1,4 +1,4 @@
angular.module('ionic.ui.content', [])
angular.module('ionic.ui.toggle', [])
// The content directive is a core scrollable content area
// that is part of many View hierarchies
@ -6,30 +6,42 @@ angular.module('ionic.ui.content', [])
return {
restrict: 'E',
replace: true,
scope: {},
require: '?ngModel',
template: '<div class="toggle">' +
' <input type="checkbox">'+
' <div class="track">' +
' <div class="handle"></div>' +
' <div class="handle"></div>' +
' </div>' +
'</div>',
link: function($scope, $element, $attr, ngModel) {
var checkbox;
$scope.toggle = new ionic.views.Toggle({ el: $element[0] });
var checkbox, track, handle;
if(!ngModel) { return; }
checkbox = $element.children()[0];
checkbox = $element.children().eq(0);
track = $element.children().eq(1);
handle = track.children().eq(0);
if(!checkbox) { return; }
if(!checkbox.length || !track.length || !handle.length) { return; }
$scope.toggle = new ionic.views.Toggle({
el: $element[0],
checkbox: checkbox[0],
track: track[0],
handle: handle[0]
});
$element.bind('click', function(e) {
$scope.toggle.tap(e);
$scope.$apply(function() {
ngModel.$setViewValue(checkbox[0].checked);
});
});
ngModel.$render = function() {
checkbox.checked = ngModel.$viewValue;
$scope.toggle.val(ngModel.$viewValue);
};
}
}
})

View File

@ -6,5 +6,7 @@ angular.module('ionic.ui', ['ionic.ui.content',
'ionic.ui.tabs',
'ionic.ui.nav',
'ionic.ui.sideMenu',
'ionic.ui.list'
'ionic.ui.list',
'ionic.ui.toggle'
]);