kohlerjp

kohlerjp

Adding fragment id to URL in controller

Is there a way to add a fragment identifier (an element id after a “#”) to a url in a controller? I’ve tried changing the request_path in the conn object but have had no luck.

First Post!

josevalim

josevalim

Creator of Elixir

@kohlerjp can you please provide more information on what you are trying to achieve? Do you want to redirect somewhere with a fragment? Do you want to generate a link with a fragment? Thank you.

Most Liked

PJextra

PJextra

Hi Kohlerjp,

I could use # for navigation like this:

  1. I know the fragment identifier in my view and use a link like this to navigate:

    <%= for i ← @searchEmpresas do %>

    <%=raw i.name%>

    <%end%>

Then, in my controller I can extract and pass the fragment identifier:

def index(conn, params) do
    case params do
      %{"scrollTo" => scrollTo} ->
        scrollTo = scrollTo
        render(conn, "index.html", scrollTo: scrollTo)
      _ ->
        scrollTo = nil
        render(conn, "index.html", scrollTo: scrollTo)
    end  
  end

If you only know the fragment identifier in your controller and not in your view, just do this:

def index(conn, _params) do
     scrollTo = "myFragmentId"
     render(conn, "index.html", scrollTo: scrollTo)
 end

Finally I use in my “index.html”:

<script>
    location.hash = "<%=@scrollTo%>"
</script>

This is a simplification that I think could help you.

Where Next?

Popular in Questions Top

minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
PeterCarter
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New

Other popular topics Top

vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
hariharasudhan94
Lets say I have map like this fetching from my database %{"_id" =&gt; #BSON.ObjectId&lt;58eb1a7a9ad169198c3dXXXX&gt;, "email" =&gt; ...
New
sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

We're in Beta

About us Mission Statement