@ajlhimik

Как получить значения высшего по уровню range в template golang?

У меня есть форма
<form method="POST" action="/saveLucr">
        {{ range .Proflist }}
        <b> <input name="name_lucru" type="text" value="{{ .NameProf }}" />&nbsp;&nbsp;</b>
        <b> <input name="orar_prof" type="text" value="{{ .OrarProf }}" /> </b>
       <label  id="addProfesie">add profesie</label>
        <table id="{{ .NameProf }}">
            <tbody>
                {{ range .PersList }}
                <tr name = "tr" id = "tr">
                    <td> Numele: <input name="name" type="text" value="{{ .NameLucr }}" /></td>
                    <td> Prenumele: <input name="surname" type="text" value="{{ .PrenumeLucr }}" /></td>
                    <td> Concediu I inceput: <input name="date_begin_concediu1" type="date" value="{{ .Begconc1 }}" /></td>
                    <td> Concediu I terminat: <input name="date_end_concediu1" type="date" value="{{ .Endconc1 }}" /></td>
                    <td> Concediu II inceput: <input name="date_begin_concediu2" type="date" value="{{ .Begconc2 }}" /></td>
                    <td> Concediu II terminat: <input name="date_end_concediu2" type="date" value="{{ .Endconc2 }}" /></td>
                    <td class="delete_button">  <label  id="del_tr1">Del</label> </td>
                </tr>
                {{ end }} 
             </tbody>
             
        </table>
        <P><label  id="addLucrator">Add_Lucrator</label></P>
        {{ end }}
        <input type="submit" value="GO!">
    </form>

в нее 2 цикла range, есть json
{
    "Proflist" : [
        {"NameProf" : "inj",
        "OrarProf" : 8,
        "PersList" : [
            {
                "NameLucr" : "grisa",
                "PrenumeLucr" : "fas",
                "Begconc1": "5",
                "Endconc1" : "0",
                "Begconc2": "0",
                "Endconc2" : "0"
            },
            {
                "NameLucr" : "vasea",
                "PrenumeLucr" : "fas2",
                "Begconc1": "4",
                "Endconc1" : "2",
                "Begconc2": "4",
                "Endconc2" : "5"
            }
        ]},
        {"NameProf" : "ing2",
            "OrarProf" : 10,
            "PersList" : [
                {
                    "NameLucr" : "hhh",
                    "PrenumeLucr" : "dsa",
                    "Begconc1": "dsa",
                    "Endconc1" : "asd",
                    "Begconc2": "dsadfsadfasfas",
                    "Endconc2" : "kasdhfkjhasjkd"
                }
            ]}

      ]
}

он туда и запихивается мне нужно создать id тэга tr, он вот такой < <tr name = "tr" id = "tr">мне нужэн типа такой <tr name = "tr" id = "tr_{{ .NameProf }}"> , но так не работает, как я понимаю что в массиве PersList ужэ NameProf нету, а как к нему тогда обрашятся?
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
Tyranron
@Tyranron
Создать переменные итерации для внешнего цикла:

<form method="POST" action="/saveLucr">
        {{ range $i, $p := .Proflist }}
        <b> <input name="name_lucru" type="text" value="{{ $p.NameProf }}" />&nbsp;&nbsp;</b>
        <b> <input name="orar_prof" type="text" value="{{ $p.OrarProf }}" /> </b>
       <label  id="addProfesie">add profesie</label>
        <table id="{{ $p.NameProf }}">
            <tbody>
                {{ range $p.PersList }}
                <tr name = "tr" id = "tr_{{ $p.NameProf }}">
                    <td> Numele: <input name="name" type="text" value="{{ .NameLucr }}" /></td>
                    ...
                </tr>
                {{ end }} 
             </tbody>
        </table>
        <P><label  id="addLucrator">Add_Lucrator</label></P>
        {{ end }}
        <input type="submit" value="GO!">
    </form>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы