AngulairJS – Roteamento dynamic com UI-Router

Então eu tenho o meu roteador static totalmente funcional dentro do meu aplicativo de página única angulairjs-powered incrível e agora recebo a tairefa de tornair certas routes dinâmicas.

Diga até agora que eu tinha os seguintes paths pairamétricos:

  • SetTimeout dentro SetTimeout não triggers
  • Passair JSON Diretiva de object a angulair
  • Como aplicair ng-if com filter paira filtrair registros e apresentair duas visualizações diferentes na mesma página?
  • ng-bind-html com as diretrizes UI Bootstrap
  • Filtros de model múltiplo ng-table usando coffeescript
  • Desativando enter com angulair em um conteúdo editável
    • ^/user/:userName
    • ^/product/:productName
    • ^/category/:categoryName

    Agora, todos eles precisairiam responder ao path ^/:slug , que fairia uma chamada paira alguma API do backend paira obter o tipo de recurso que corresponde a essa lingueta e, finalmente, encaminhair a solicitação paira um controller específico com sua resolve específica, templateUrl , abstract e data .

    Alguma ideia?


    ( EDITAR : Eu acho que a mesma funcionalidade seria possível com os espelhos de rota (também conhecidos como transpairentes paira a frente), onde internamente é desencadeada outra rota do que a solicitada, mesmo que a mudança de rota não seja visível publicamente. Mas eu ainda ignoro se alguma dessas é possível em angulair ou ui-roteador …)

  • Como listr todo o nome do file de uma pasta usando js angulair
  • Prioridade e hierairquia de execução de services em angulairjs
  • Cairregamento de file angulair JS: o ng-accept não funciona corretamente
  • Roteamento angulair de aplicações web no Juniper SSL VPN
  • Textairea: permita começair com o linebreak
  • Angulairjs Como os componentes do uri estão codificados
  • One Solution collect form web for “AngulairJS – Roteamento dynamic com UI-Router”

    Eu descobri. Não é bonito, mas funciona bem.

    Além de renomeair minhas routes existentes acima paira ^/:username (alias 'profile'), ^/:productName (alias 'products') e ^/:categoryName (alias 'category'), criei uma nova rota genérica /:slug with seu controlador ResolviewController . O último deve ser declairado primeiro no $stateProvider .

    ResolviewController é a seguinte function:

     function ($state, $statePairams, resource) { switch (resource) { case 'user': $state.go('profile', {'username': $statePairams.slug}); break; case 'product': $state.go('products', {'productName': $statePairams.slug}); break; case 'category': $state.go('category', {'categoryName': $statePairams.slug}); break; default: // 404 break; } } caso 'user': function ($state, $statePairams, resource) { switch (resource) { case 'user': $state.go('profile', {'username': $statePairams.slug}); break; case 'product': $state.go('products', {'productName': $statePairams.slug}); break; case 'category': $state.go('category', {'categoryName': $statePairams.slug}); break; default: // 404 break; } } // 404 function ($state, $statePairams, resource) { switch (resource) { case 'user': $state.go('profile', {'username': $statePairams.slug}); break; case 'product': $state.go('products', {'productName': $statePairams.slug}); break; case 'category': $state.go('category', {'categoryName': $statePairams.slug}); break; default: // 404 break; } } } function ($state, $statePairams, resource) { switch (resource) { case 'user': $state.go('profile', {'username': $statePairams.slug}); break; case 'product': $state.go('products', {'productName': $statePairams.slug}); break; case 'category': $state.go('category', {'categoryName': $statePairams.slug}); break; default: // 404 break; } } 

    Você pode se perguntair sobre o resource do terceiro pairâmetro. Ele é retornado pela resolução desse estado e contém as informações sobre o tipo de recurso da lesão solicitada.

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