7
respostas

AngularJS + ui-router + #anchor

Boa noite,

Estou com um problema, passei o fds e não consegui resolver. Tenho um site que desenvolvi usando AngularJS e o ui-router. Está tudo certo com as rotas que eu criei com exceção das ancoras que eu criei. Tenho ancoras que ficam na mesma página dos botões e links que chamam elas, mas tem outras ancoras que não estão no mesmo html e nessas estou tendo problemas. Na verdade tenho 2 problemas que vou citar abaixo.

1) Ancoras na mesma página

Quando tenho ancora na mesma página uso o código abaixo e o scroll rola para o local desejado sem problemas.

ui-sref="website.home({'#': 'assineja'})"

Com o código acima funciona quase tudo bem, só tem o seguinte problema. Vamos supor que estou na pagina www.meusite.com.br , quando clico em um determinado botão ele executa o ui-sref e posiciona na minha ancora. Isso de boas... só que o link passa a ser www.meusite.com.br/!#/assinejá (isso está ok). Só que se eu subo o scroll do mouse por exemplo e clico no mesmo botão novamente a ancora não funciona (acho que ele entende que já está na ancora porque o link esta www.meusite.com.br/!#/assineja). Tem como arrumar isso? ou é perfeitamente normal?

2) Ancoras em paginas diferentes

Quando tenho uma ancora por exemplo em uma pagina (pagina2.html) e meu botão está na (pagina1.html), faço como abaixo e não funciona.

ui-sref="website.pagina2({'#': 'minhaancora'})"

Vi alguns tutoriais na internet falando pra usar diretiva e mais algumas coisas que não entendi muito bem e não consegui fazer funcionar.

Se alguem puder me ajudar com esses dois problemas ficarei imensamente grato.

Obs.: é meu primeiro site usando angular e ui-router (eu fiz justamente para aprender). Então desculpem se a dúvida é muito básica.

Obrigado.

7 respostas

Eu não uso ui-router. Você já viu se é bug nele?

Olhando assim de relance me parece estar tudo ok.

Vamos ver se alguém que usa e manja parece aqui para ajudar.

Bom dia @Flavio ,

Eu pesquisei e não encontrei nada a respeito de erro, acho que sou eu que estou fazendo algo errado mesmo...rsrsrsr

Espero que alguem possa me ajudar aqui, pq já "quebrei a cabeça" com isso.

Tem a tag base no index.html?

Tem sim.

<ui-view></ui-view>

@Flavio, não consegui ainda... :(

Você precisa usar ui-router? Tentou outra versão?

Estou na última versão do ui-router (para AngularJS). Não necessariamente preciso utilizar o ui-router. Mas não sei como usar rota com angular puro e a aplicação que eu fiz já está toda com rotas com o ui-router.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software