Я сел на мель на выборке, созданной из массивов объектов. Я много пробовал и читал об этой топике c, но, похоже, никто не охватывал этот аспект.
Свойство объекта - это массив. Из этого массива я должен создать столько выборок, сколько есть индекса в массиве. Мне нужно создать выбор программно, потому что значение не является фиксированным. Пока что все идет хорошо. Но мне нужно выбрать опцию, основанную на индексе массива.
Я прочитал документы, и кажется, что ngModel
является обязательным для ngOption
. Таким образом, первый камень преткновения состоит в том, чтобы программно создать столько ngModels
для каждого выбора.
$scope.players = [
{
"id":"8846",
"title":"TC 2",
"resourceid":"1",
"description":"tc 2",
"interni":[
{
"student_id":"48",
"student_year_id":"3",
"student_name":"Fres Dany",
"id_section":"4",
"section":"tc"
},
{
"student_id":"13",
"student_year_id":"1",
"student_name":"Luck skywalker",
"id_section":"4",
"section":"tc"
}
],
"start_event":"2020-03-02T13:00:00.000Z",
"end_event":"2020-03-02T19:00:00.000Z",
"event_note":null
}
];
, поскольку вы можете видеть, что свойство "interni" имеет индекс [0] и 1 count = 2
что я пробовал:
<div ng-repeat="x in interni track by $index">
<select ng-options="x.student_id as x.student_name for x in interni track by $index"
id=mySelect{{$index}}
ng-model="selected[x.student_name]">
</select>
{{$index}} <- "i want to make selecet item as index"
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio"
name="status{{$index}}" id="inlineRadio1"
value="presente">
<label class="form-check-label" for="inlineRadio1">presente</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio"
name="status{{$index}}" id="inlineRadio2"
value="assente">
<label class="form-check-label" for="inlineRadio2">assente</label>
</div>
Также в некоторых тестах я пробовал метод вроде trackBy, initIndex, ng-init = "listIndex = $ index" и так далее. на ..
в основном я должен добавить свойство для каждого элемента в массиве и воссоздать новый объект. Но выбор должен быть выбран при загрузке, и для любых людей, отстраненных от выбора, я должен объявить один статус "предустановка" или "отсутствует"
У меня это сделано в javascript, и мне нужно воссоздать в angularjs.
примерно так:
for (var i =0; i < interni.lenght; i++){
document.getElementById("mySelect"+[i]).selectedIndex = [i];
}
В общем, как я могу выбрать опцию на основе соответствующего индекса в массиве и получить данные в контроллере?
Здесь работает jsbin
Любая помощь широко ценится ... даже от моей головной боли