So it turns out that the issue was not caused by simpleLoginTools at all, they work great. The issue was caused by Ionic's heavy use of isolate scopes that I was unaware of.
$scope.data = {
"email" : null,
"pass" : null,
"confirm" : null,
"createMode" : false
}
The solution was to nest the login credentials inside of a $scope.data object, then modify the login function to fit the new nesting structure.
$scope.login = function(cb) {
$scope.err = null;
if( !$scope.data.email ) {
$scope.err = 'Please enter an email address';
}
else if( !$scope.data.pass ) {
$scope.err = 'Please enter a password';
}
else {
loginService.login($scope.data.email, $scope.data.pass, function(err, user) {
$scope.err = err? err + '' : null;
if( !err ) {
cb && cb(user);
}
});
}
};