This is my ui-router configurator for a specific route
state('app.merchant', { url: '/start/merchant', views: { 'mainView': { templateUrl: "partials/start_merchant.html" } }, css: ['assets/vendor/bootstrap/dist/css/bootstrap.css','assets/css/styles.css','assets/css/plugins.css'], title: 'Buttons', resolve: { userRequired: userRequired, } resolve: loadSequence('flow','angularFileUpload','MerchantWizardCtrl') })
The problem is that the page is displayed even if it does not meet the userRequired requirement. This is the function for userRequired :
function userRequired($q, $location, $auth,Account) { var deferred = $q.defer(); if ($auth.isAuthenticated()) { Account.getUserStatus() .then(function(response){ if(response.data == true){ deferred.resolve(); } else{ deferred.reject(); } }) .catch(function(response){ console.log("Error has occur, Please contact adminstrator"); }); } else { deferred.resolve(); } return deferred.promise; }
How to resolve this? Thanks!!
EDIT
loadsequence:
function loadSequence() { var _args = arguments; return { deps: ['$ocLazyLoad', '$q', function ($ocLL, $q) { var promise = $q.when(1); for (var i = 0, len = _args.length; i < len; i++) { promise = promiseThen(_args[i]); } return promise; function promiseThen(_arg) { if (typeof _arg == 'function') return promise.then(_arg); else return promise.then(function () { var nowLoad = requiredData(_arg);
source share