@@ -505,7 +505,7 @@ defmodule Phoenix.LiveView.ComponentsTest do
505505
506506 template = ~H"""
507507 < . form :let = { f } as = { :myform } >
508- < . inputs_for :let = { finner } field = { f [ :inner ] } } >
508+ < . inputs_for :let = { finner } field = { f [ :inner ] } >
509509 <% 0 = finner . index %>
510510 < input id = { finner [ :foo ] . id } name = { finner [ :foo ] . name } type = "text " />
511511 </ . inputs_for >
@@ -526,7 +526,7 @@ defmodule Phoenix.LiveView.ComponentsTest do
526526
527527 template = ~H"""
528528 < . form :let = { f } as = { :myform } >
529- < . inputs_for :let = { finner } field = { f [ :inner ] } } id = "test " as = { :name } >
529+ < . inputs_for :let = { finner } field = { f [ :inner ] } id = "test " as = { :name } >
530530 < input id = { finner [ :foo ] . id } name = { finner [ :foo ] . name } type = "text " />
531531 </ . inputs_for >
532532 </ . form >
@@ -542,7 +542,7 @@ defmodule Phoenix.LiveView.ComponentsTest do
542542
543543 template = ~H"""
544544 < . form :let = { f } as = { :myform } >
545- < . inputs_for :let = { finner } field = { f [ :inner ] } } as = { :name } >
545+ < . inputs_for :let = { finner } field = { f [ :inner ] } as = { :name } >
546546 < input id = { finner [ :foo ] . id } name = { finner [ :foo ] . name } type = "text " />
547547 </ . inputs_for >
548548 </ . form >
@@ -562,7 +562,7 @@ defmodule Phoenix.LiveView.ComponentsTest do
562562
563563 template = ~H"""
564564 < . form :let = { f } as = { :myform } >
565- < . inputs_for :let = { finner } field = { f [ :inner ] } } default = { % { foo: "123" } } >
565+ < . inputs_for :let = { finner } field = { f [ :inner ] } default = { % { foo: "123" } } >
566566 < input id = { finner [ :foo ] . id } name = { finner [ :foo ] . name } type = "text " value = { finner [ :foo ] . value } />
567567 </ . inputs_for >
568568 </ . form >
@@ -585,7 +585,6 @@ defmodule Phoenix.LiveView.ComponentsTest do
585585 < . inputs_for
586586 :let = { finner }
587587 field = { f [ :inner ] }
588- }
589588 default = { [ % { foo: "456" } ] }
590589 prepend = { [ % { foo: "123" } ] }
591590 append = { [ % { foo: "789" } ] }
@@ -613,7 +612,7 @@ defmodule Phoenix.LiveView.ComponentsTest do
613612
614613 template = ~H"""
615614 < . form :let = { f } as = { :myform } >
616- < . inputs_for :let = { finner } field = { f [ :inner ] } } options = { [ foo: "bar" ] } >
615+ < . inputs_for :let = { finner } field = { f [ :inner ] } options = { [ foo: "bar" ] } >
617616 < p > { finner . options [ :foo ] } </ p >
618617 </ . inputs_for >
619618 </ . form >
@@ -623,6 +622,35 @@ defmodule Phoenix.LiveView.ComponentsTest do
623622 assert [ p ] = Floki . find ( html , "p" )
624623 assert Floki . text ( p ) =~ "bar"
625624 end
625+
626+ test "can disable persistent ids" do
627+ assigns = % { }
628+
629+ template = ~H"""
630+ < . form :let = { f } as = { :myform } >
631+ < . inputs_for
632+ :let = { finner }
633+ field = { f [ :inner ] }
634+ default = { [ % { foo: "456" } , % { foo: "789" } ] }
635+ prepend = { [ % { foo: "123" } ] }
636+ append = { [ % { foo: "101112" } ] }
637+ skip_persistent_id
638+ >
639+ < input id = { finner [ :foo ] . id } name = { finner [ :foo ] . name } type = "text " value = { finner [ :foo ] . value } />
640+ </ . inputs_for >
641+ </ . form >
642+ """
643+
644+ assert t2h ( template ) ==
645+ ~X"""
646+ <form>
647+ <input id="myform_inner_0_foo" name="myform[inner][0][foo]" type="text" value="123"></input>
648+ <input id="myform_inner_1_foo" name="myform[inner][1][foo]" type="text" value="456"></input>
649+ <input id="myform_inner_2_foo" name="myform[inner][2][foo]" type="text" value="789"></input>
650+ <input id="myform_inner_3_foo" name="myform[inner][3][foo]" type="text" value="101112"></input>
651+ </form>
652+ """
653+ end
626654 end
627655
628656 describe "live_file_input/1" do
0 commit comments