使用动态ng-model的嵌套ng-repeat作为对象

时间:2017-04-21 15:21:51

标签: javascript html angularjs-scope angularjs-ng-repeat

好吧,让我说实话,因为我是棱角分明的初学者,我不知道如何构建这个问题,我会尽力解释这个问题。

图1: enter image description here

正如你在上面的图片中看到的那样,我有一个类列表的情况,每个类都没有下面的部分。你可以在点击的每一行看到一个蓝色按钮,我需要知道选择了哪个“部分”。

这是问题陈述。

现在这里是我的HTML

<table class="table table-hover">
  <tbody>
    <tr>
      <th>Syllabus</th>
      <th>{{phrase.className}}</th>
      <th>Select Section</th>
      <th>{{phrase.Operations}}</th>
    </tr>
    <tr ng-repeat="class in classes| filter:searchText">
      <td id="syl">
        <span ng-repeat="(sid, syllabi)  in syllabus" ng-if="sid == class.classAcademicYear">
            {{ syllabi.yearTitle}}
        </span>
      </td>
      <td id="cls">{{class.className}}</td>
      <td id="sec">
        <div class="form-group">
          <select class="form-control" name="student_section" ng-model="selectedSection">
             <option ng-selected='class.sections[$index].id' ng-repeat="(key, section) in class.sections" value="{{section.id}}">{{section.sectionName}}</option>
          </select>
        </div>
      </td>
      <td id="vew">
        <button ng-click="edit(class.id)" type="button" class="btn btn-info btn-flat" title="{{phrase.ReadSchedule}}" tooltip><i class="fa fa-fw fa-th-list"></i></button>
      </td>
    </tr>
    <tr ng-show="!classes.length">
      <td class="noTableData" colspan="3">{{phrase.NoClasses}}</td>
    </tr>
  </tbody>
</table>

这里我们看到一个nseted ng-repeat,其中我基于类列表创建表行,现在这个类对象也保存了section对象,因为你可以看到内部ng-repeat使用该classes.sections来迭代选项

现在类json对象如下所示

[{
  "id": 11,
  "className": "Class-1 (STATE)",
  "classAcademicYear": 2,
  "classSubjects": "[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\"]",
  "dormitoryId": null,
  "sections": [{
    "id": 11,
    "sectionName": "Section -1 (STATE)",
    "sectionTitle": "section title -1",
    "classId": 11,
    "teacherId": "[\"10\",\"11\",\"12\",\"13\",\"14\",\"15\"]"
  }]
}, {
  "id": 12,
  "className": "Class-2",
  "classAcademicYear": 2,
  "classSubjects": "[\"0\"]",
  "dormitoryId": null,
  "sections": [{
    "id": 12,
    "sectionName": "Section -1",
    "sectionTitle": "section title -1",
    "classId": 12,
    "teacherId": "[\"0\"]"
  }]
}, {
  "id": 13,
  "className": "Class-3",
  "classAcademicYear": 2,
  "classSubjects": "[\"0\"]",
  "dormitoryId": null,
  "sections": [{
    "id": 13,
    "sectionName": "Section -1",
    "sectionTitle": "section title -1",
    "classId": 13,
    "teacherId": "[\"0\"]"
  }]
}, {
  "id": 14,
  "className": "Class-4",
  "classAcademicYear": 2,
  "classSubjects": "[\"0\"]",
  "dormitoryId": null,
  "sections": [{
    "id": 14,
    "sectionName": "Section -1",
    "sectionTitle": "section title -1",
    "classId": 14,
    "teacherId": "[\"0\"]"
  }]
}]

我要做的是为动态内部选择下拉元素设置一个ng-model,如下所示,这样每次选择该部分时,我都可以将蓝色按钮动作设置为任何部分id。< / p>

  

NG-模型= “selectedSection [class.id]”

哪个不行。

我知道这可能不是足够的信息,但如果有人有兴趣帮我解决这个问题,我可以分享更多细节。

1 个答案:

答案 0 :(得分:0)

为了检查选择了什么ng-repeat行,你应该发送值$ index和$ parent。$ index(如果你有嵌套的ng-repeat)。

<button ng-click="edit($index, $parent.$index)" type="button">

有帮助吗?