【问题标题】:AngularJS <select> for every object in arrayAngularJS <select> 用于数组中的每个对象
【发布时间】:2017-05-01 13:05:04
【问题描述】:

我正在从一组对象创建一个表。在每一行中,我需要有项目,预选值等于该行中使用的对象名称。 问题是: 1. 如何为每行选择一个等于reader.owner_name 的默认值。 2。如何理解更改了哪一行?

<tr class="restTable" data-ng-repeat="reader in readers|orderBy:'number'">
    <td> {{ reader.number }}</td>
    <td> {{ reader.type }}</td>
    <td ><select ng-model='$parent.selectedSupervisor' ng-options="ref.name for ref in referents |orderBy:'name'"  ng-change="change()"></select></td>
</tr>

【问题讨论】:

  • 对于 2. 您必须在 ng-repeat 中指定索引:reader in readers track by $index。在此之后,您可以在您的更改功能中发送$indexchange($index)。这会将您的对象链接到您的函数。
  • 问题是$index与数组readers中的索引不对应
  • 那对应的是什么?
  • 好的,这个问题已使用您的解决方案解决,但添加了reader.arrayindex 的跟踪并使用change(reader.arrayindex),之前已设置。谢谢

标签: javascript angularjs model-view-controller


【解决方案1】:
  1. 您可以如下分配模型值

     ng-model="reader.owner_name"
    

【讨论】:

  • 不,一开始还是空白
  • 您需要根据变量 'referents' 中的值进行绑定。这里 ref.name 应该等于 reader.owner_name。否则你可以做这样的事情 ng-options="option.STATE_SHORTNAME as option.STATE_LONGNAME for option in OpportunityStates"
  • 什么意思?
  • 确保 ref.name 中的值应等于您在 mg-model 中分配的值。否则,您可以使用此语法
  • 我不确定我明白了。我使用了ng-model='$parent.selectedSupervisor[reader.arrayindex]',现在我可以更改单选而不是全部。然后在控制器中我创建了函数function fillDropdown(){ for (var i = 0; i &lt; readers.length; i++) { $scope.selectedSupervisor[ind].name=readers[i].owner_name; } } 我确信名称是相同的,因为它们具有相同的来源。但是没有效果....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-26
  • 1970-01-01
  • 2018-06-06
  • 1970-01-01
  • 2020-12-16
  • 2021-12-26
  • 2020-07-06
相关资源
最近更新 更多