-->
كود اسم المستخدم كلمه السر بلغه الجافاء JavaScript
كود اسم المستخدم كلمه السر بلغخ الجافاء JavaScript
1- html
-------------------------------------------------------------------------------------
<section ng-app="myapp">
<div ui-view="viewA"></div>
<div ui-view="viewB"></div>
<!-- Also a way to navigate -->
<a ui-sref="welcome">Welcome</a>
<a ui-sref="app.dashboard">Application</a>
</section>
<script type="text/ng-template" id="modallogindialogId">
<div>
<form ng-submit="LoginModalCtrl.submit(_email, _password)">
<input type="email" ng-model="_email" />
<input type="password" ng-model="_password" />
<button>Submit</button>
</form>
<button ng-click="LoginModalCtrl.cancel()">Cancel</button>
</div>
</script>
-------------------------------------------------------------------------------------
2-الجافاء JavaScript
--------------------------------------------------------------------------------------
var app = angular.module('myapp', ['ui.router', 'ngDialog']);
app.config(function ($stateProvider) {
$stateProvider
.state('welcome', {
url: '/welcome',
// ...
data: {
requireLogin: false
},
views: {
"viewA": { template: "<p>Hello world from view a</p>" },
"viewB": { template: "<p>Hello world from view b</p>" }
}
})
.state('app', {
abstract: true,
// ...
data: {
requireLogin: true // this property will apply to all children of 'app'
}
})
.state('app.dashboard', {
url: '/app',
views: {
"viewA": { template: "<p>You already logged in. Hello world from view a</p>" },
"viewB": { template: "<p>You already logged in.Hello world from view b</p>" }
}
// child state of `app`
// requireLogin === true
})
});
app.config(function ($httpProvider) {
$httpProvider.interceptors.push(function ($timeout, $q, $injector) {
var loginModal, $http, $state;
// this trick must be done so that we don't receive
// `Uncaught Error: [$injector:cdep] Circular dependency found`
$timeout(function () {
loginModal = $injector.get('loginModal');
$http = $injector.get('$http');
$state = $injector.get('$state');
});
return {
responseError: function (rejection) {
if (rejection.status !== 401) {
return rejection;
}
var deferred = $q.defer();
loginModal()
.then(function () {
deferred.resolve( $http(rejection.config) );
})
.catch(function () {
$state.go('welcome');
deferred.reject(rejection);
});
return deferred.promise;
}
};
});
});
app.controller('LoginModalCtrl', function ($scope) {
this.cancel = $scope.$dismiss;
this.submit = function (email, password) {
var user = {email: email, password: password};
$rootScope.currentUser = user;
};
});
app.service('loginModal', function (ngDialog, $rootScope) {
function assignCurrentUser (user) {
$rootScope.currentUser = user;
return user;
}
return function() {
var instance = ngDialog.openConfirm({
template: '<div>\
<form ng-submit="LoginModalCtrl.submit(_email, _password)">\
<input type="email" ng-model="_email" />\
<input type="password" ng-model="_password" />\
<button>Submit</button>\
</form>\
<button ng-click="LoginModalCtrl.cancel()">Cancel</button>\
</div>',
controller: 'LoginModalCtrl',
controllerAs: 'LoginModalCtrl',
plain: true
});
return instance.then(assignCurrentUser);
};
});
app.run(function ($rootScope, $state, loginModal) {
$rootScope.$on('$stateChangeStart', function (event, toState, toParams) {
var requireLogin = toState.data.requireLogin;
if (requireLogin && typeof $rootScope.currentUser === 'undefined') {
event.preventDefault();
loginModal()
.then(function () {
return $state.go(toState.name, toParams);
})
.catch(function () {
return $state.go('welcome');
});
}
});
});
------------------------------------------------------------------------------------