2017-09-20 1 views
7

Comment puis-je rediriger vers une URL externe? J'ai essayé avec Navigation module, mais il semble fonctionner uniquement pour les routes locales. Y at-il un moyen de le faire nativement, sans ports js?Elm lang rediriger vers URL externe

I.e. window.location.href = http://google.com;

Modifier: J'ai en quelque sorte manqué Navigation.load fonction. Comme suggéré ci-dessous, il aidera avec des redirections.

Répondre

7

Depuis a tag peut être toujours utilisé avec href spécifié, je préfère essayer de trouver une solution qui éviterait d'utiliser la redirection de la fonction update.

a [ href "http://google.com" ] [ text "Google link" ] 

Mais dans le cas où il est nécessaire de mettre en œuvre la logique similaire à window.location.href = "http://google.com";, elm-lang/navigation fournit la fonction load (et quelques autres très utiles pour forcer des charges de page) qui fait, ce que vous vous attendez.

Il faut une URL et retourne une commande load : String -> Cmd msg, donc il va ressembler à ceci:

update : Msg -> Model -> (Model, Cmd Msg) 
update msg model = 
    case msg of 
     RedirectToGoogle -> 
      (model, load "http://google.com") 
+0

Merci pour la réponse. J'ai besoin de rediriger une fois que le back-end termine la tâche, donc tag n'est pas adapté. Mais Navigation.load a fait le travail! Je l'ai manqué quelque peu :(Passez une bonne journée! – Ilya