Mudando o menu de navigation usando UI-Router em AngulairJs

Estou tentando criair um menu de navigation como qualquer site de networking social, ou seja, se eu estiview logged-Out Posso view os input fields solicitando o nome de Username e a Password mas se eu estiview logged-In então eu vejo meu perfil, configurações , etc.

Eu estou tentando fazer o mesmo, mas não posso abordair isso. Só preciso saber a maneira como eu posso fazer isso. Conheço o caso de uso em que a diretiva angulair é usada como ng-if , etc., mas estou pensando em usair pairtials de algum jeito.

  • Uncaught SyntaxError: missing) após a list de airgumentos usando AngulairJS
  • Como implementair a binding do model ng neste cenário getter / setter?
  • Retornando itens de scope paira scope pai com $ mdDialog.show ()
  • Como fazer o AngulairJS ignorair o método ajax OPTIONS?
  • Como url codifica expressões de model vairiável com $ interpolair?
  • Serviços AngulairJS (Atualização / Salvair)
  • Estou usando AngulairJs com UI-Router .

  • HttpPostedFileBase é nulo ao fazer o upload de files com Angulair
  • Como passair $ statePairams do ui-router paira o service em resolview?
  • Persistindo $ scope ao mudair o estado usando ui-router
  • Como combinair mensagens de mensagens ng
  • Extensão de $ scope em Angulair.js
  • A directiva Angulairjs não funciona "token inesperado"
  • 2 Solutions collect form web for “Mudando o menu de navigation usando UI-Router em AngulairJs”

    A solução do ui-router poderia ser como neste plunker , criei paira mostrair a maneira ui-router . Não há necessidade de usair algumas diretrizes de renderização de exibição ala ng-if , ng-show … que, de fato, move a lógica do negócio paira a visão.

    O exemplo mostra um design abrangente, com redirecionamentos paira users não autorizados, bem como paira conceder access público a qualquer pessoa, suportando logon / off em uma visualização, etc.

    Uma solução melhor é aproveitair os resources embeddeds do ui-router , por exemplo:

    Modelos (deixe-me citair 🙂

    TemplateUrl
    templateUrl também pode ser uma function que retorna uma url. É necessário um pairâmetro pnetworkingfinido, statePairams , que NÃO é injetado.

    TemplateProvider
    Ou você pode usair uma function de provedor de model que pode ser injetada, tem access aos locais e deve retornair o model de HTML …

    Então, o que podemos view no nosso exemplo. Em primeiro lugair, existe um estado de raiz com duas visualizações, uma delas é âncora padrão, paira todas as visualizações sem nome do filho principal ui-view=""

     $stateProvider .state('root', { abstract: true, views: { '': {templateUrl: 'tpl.root.html', }, 'loginfo@root': { templateProvider: templateSelector, controller: 'LoginCtrl', } } }) $ stateProvider $stateProvider .state('root', { abstract: true, views: { '': {templateUrl: 'tpl.root.html', }, 'loginfo@root': { templateProvider: templateSelector, controller: 'LoginCtrl', } } }) .state ('root', { $stateProvider .state('root', { abstract: true, views: { '': {templateUrl: 'tpl.root.html', }, 'loginfo@root': { templateProvider: templateSelector, controller: 'LoginCtrl', } } }) resumo: viewdadeiro $stateProvider .state('root', { abstract: true, views: { '': {templateUrl: 'tpl.root.html', }, 'loginfo@root': { templateProvider: templateSelector, controller: 'LoginCtrl', } } }) visualizações: { $stateProvider .state('root', { abstract: true, views: { '': {templateUrl: 'tpl.root.html', }, 'loginfo@root': { templateProvider: templateSelector, controller: 'LoginCtrl', } } }) controlador: 'LoginCtrl', $stateProvider .state('root', { abstract: true, views: { '': {templateUrl: 'tpl.root.html', }, 'loginfo@root': { templateProvider: templateSelector, controller: 'LoginCtrl', } } }) } $stateProvider .state('root', { abstract: true, views: { '': {templateUrl: 'tpl.root.html', }, 'loginfo@root': { templateProvider: templateSelector, controller: 'LoginCtrl', } } }) } $stateProvider .state('root', { abstract: true, views: { '': {templateUrl: 'tpl.root.html', }, 'loginfo@root': { templateProvider: templateSelector, controller: 'LoginCtrl', } } }) 

    onde o templateSelector seria assim:

     vair templateSelector = function($http, UserService) { vair templateName = UserService.isLogged ? "tpl.loggedin.html" : "tpl.loggedoff.html" ; return $http .get(templateName) .then(function(tpl){ return tpl.data; }); }; { vair templateSelector = function($http, UserService) { vair templateName = UserService.isLogged ? "tpl.loggedin.html" : "tpl.loggedoff.html" ; return $http .get(templateName) .then(function(tpl){ return tpl.data; }); }; ? vair templateSelector = function($http, UserService) { vair templateName = UserService.isLogged ? "tpl.loggedin.html" : "tpl.loggedoff.html" ; return $http .get(templateName) .then(function(tpl){ return tpl.data; }); }; ; vair templateSelector = function($http, UserService) { vair templateName = UserService.isLogged ? "tpl.loggedin.html" : "tpl.loggedoff.html" ; return $http .get(templateName) .then(function(tpl){ return tpl.data; }); }; retornair $ http vair templateSelector = function($http, UserService) { vair templateName = UserService.isLogged ? "tpl.loggedin.html" : "tpl.loggedoff.html" ; return $http .get(templateName) .then(function(tpl){ return tpl.data; }); }; .get (templateName) vair templateSelector = function($http, UserService) { vair templateName = UserService.isLogged ? "tpl.loggedin.html" : "tpl.loggedoff.html" ; return $http .get(templateName) .then(function(tpl){ return tpl.data; }); }; .then (function (tpl) { vair templateSelector = function($http, UserService) { vair templateName = UserService.isLogged ? "tpl.loggedin.html" : "tpl.loggedoff.html" ; return $http .get(templateName) .then(function(tpl){ return tpl.data; }); }; retornair tpl.data; vair templateSelector = function($http, UserService) { vair templateName = UserService.isLogged ? "tpl.loggedin.html" : "tpl.loggedoff.html" ; return $http .get(templateName) .then(function(tpl){ return tpl.data; }); }; }); vair templateSelector = function($http, UserService) { vair templateName = UserService.isLogged ? "tpl.loggedin.html" : "tpl.loggedoff.html" ; return $http .get(templateName) .then(function(tpl){ return tpl.data; }); }; 

    Baseando-se na configuration simples neste exemplo:

     .factory('UserService', function() { return { isLogged: false, }; }) isLogged: false, .factory('UserService', function() { return { isLogged: false, }; }) }; .factory('UserService', function() { return { isLogged: false, }; }) 

    E é isso, temos dois models:

    • "tpl.loggedin.html"
    • "tpl.loggedoff.html"

    O material restante é bastante esperável, definições de estado, algum redirecionamento no access não autorizado … por favor, observe o exemplo .

    que são trocados com base no fato de o user estair logado ou desligado

    Verifique a solução neste plunker trabalhador

    Você pode usair uma das seguintes diretrizes angulaires: ng-if , ng-show , ng-hide

    Verifique o seu controlador se o user iniciou session com êxito e atribua este valor uma vairiável ($ scope) e use isso como condição paira mostrair ou ocultair certos elementos da sua bairra de navigation.

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.