2016-11-27 2 views
0

Я надеялся, что после входа пользователя в я мог загрузить контроллер для вошедшего в силе в угловом UI Router так просто, как это:

"[email protected]":{ 
    templateProvider: function($http, $stateParams) { 
     return $http({ 
     method: 'GET', 
     url: '/homeV' 
     }).then(function successCallback(html) { 
     return html.data; 
     }); 
     }, 
    controllerProvider: function($http, $stateParams) { 
     return $http({ 
     method: 'GET', 
     url: '/homeC' 
     }).then(function successCallback(html) { 
     return html.data; 
     }); 
    } 
     } 

Но контроллеры не являются шаблонами, и, похоже, он работает так же легко, как я надеялся. Здесь много вопросов о подобных проблемах, но я не хочу использовать Require.js, если мне это не нужно.

Is Require.js единственный вариант? Если так, я буду экспериментировать с этим, но я хотел убедиться, что я не пропущу что-то в первую очередь.

+0

Вы хотите загрузить js или html после успешного завершения работы? – Aravind

+0

@ Aravind Да, потому что я не хочу перегружать SPA с помощью логики, необходимой только для аутентифицированных пользователей. Я хочу, чтобы он был модульным и чтобы контроллеры загружались только для этого состояния, когда это состояние введено. Имеет ли это смысл? –

+0

Вы ищете возможность загрузки js-файлов динамически только в том случае, если действуют определенные модули? – Aravind

ответ

1

Как сказал Мули, проверьте oclazyload. Кроме того, у меня есть своего ответа в этом post

Я использовал два модуль и вводил их соответствующие контроллеры только тогда, когда их состояние является активным, когда я использовал вариант решимости сделать это. Что-то вроде этого

resolve: { 
      loadMyCtrl: ['$ocLazyLoad', function ($ocLazyLoad) { 
      return $ocLazyLoad.load('someModule.js'); 
      }] 
     } 

Документация части oclazyload не ясна. Может быть, вы можете посмотреть мой плункер here

+0

Посмотрите, спасибо. –

+0

Мои состояния вложены, и они не работают. В документации упоминается наличие двух разрешений: один для родительского и один для дочернего ... но я не понимаю, почему, если я действительно не хочу, чтобы в этом случае была загружена нагрузка, когда загружается дочернее состояние. –

+0

да чувак. Мне нужно немного уточнить проблему ура! – Aravind