【问题标题】:AngularJS ng-repeat of array with a filter带有过滤器的数组的AngularJS ng-repeat
【发布时间】:2016-07-31 14:01:06
【问题描述】:

我有一个像这样的对象(我们称之为“元素”)

[
{name: 'name1', columns: ['col1', 'col2', 'col3']},
{name: 'name2', columns: ['col4', 'col5', 'col6']},
{name: 'name3', columns: ['col7', 'col8', 'col9']},
]

我想用名称过滤的对象的列属性中的数据构建一个角度选择对象

      <md-select
        name="selectedColumn"
        ng-model="selectedColumn"
        required
        placeholder="Column"
        ng-model-options="{trackBy: '$value._id'}">
        <md-option ng-repeat="elt in elements | filter: {name: selectedElt} " ng-value= "{{ elt }}" >
          <span class="item-title">
            <span>{{elt}}</span>
          </span>
        </md-option>
      </md-select>

问题是我得到了完整的对象,但我不知道如何将过滤器设置为仅循环遍历列属性。 例如,如果我为 selectedElt 选择“name2”(它是另一个选择元素),我希望用“col4”、“col5”和“col6”刷新我的对象“selectedColumn”

谢谢

【问题讨论】:

    标签: arrays angularjs filter properties ng-repeat


    【解决方案1】:

    在您的控制器中设置一个变量,例如 $scope.mySelectedElt,当您选择 name2 时,使用 ng-change 将该变量设置为该元素对象。然后在您的另一个选择元素(selectedElt,您说是)上为列中的列执行 ng-repeat。

    【讨论】:

    • 这是我正在寻找的列的重复;-)
    • 您正在使用两个选择元素,对吧?在第一个中,按名称选择您的元素。然后,在同一个元素上,使用 ng-change 为所选对象设置一个变量。在您的第二个选择元素中,只需对存储在变量中的元素的列使用 ng-repeat。如果这不是您要查找的内容,请详细说明。
    猜你喜欢
    • 2016-12-04
    • 2016-09-19
    • 2020-05-28
    • 2014-08-17
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    相关资源
    最近更新 更多