gpt4 book ai didi

javascript - 每次在 ng-repeat 中传递不同的数组

转载 作者:行者123 更新时间:2023-12-03 00:42:25 25 4
gpt4 key购买 nike

我正在动态生成组合框,并且每次都需要将不同的集合传递给 ng-repeat。我该怎么做?

<div ng-repeat="choice in $ctrl.inputFilterRows">
<md-select ng-model="choice.name">
<md-option ng-repeat="filter in $ctrl.filters" value="{{filter.value}}" >
{{filter.value}}
</md-option>
</md-select>
</div>

尝试从 Controller 进行设置,但没有成功:

self.inputFilterRows[0].filters = [{ value: 'June' }, { value: 'July' }, { value: 'August' }];

最佳答案

一种想法是在多个 md-select 元素上使用 ng-if,并根据适合您的条件决定启用哪一个。

另一种方法是拥有一个链接到单个 ng-repeat 选择的 $scope 变量,但是每当您想。这将强制范围重绘,并且 ng-repeat 现在将使用新的集合值。

第二个可能更干净。

编辑:

根据下面的评论中提供的更好的解释,我现在意识到您需要一组选择,每个选择都有自己的一组选项。

为了实现类似的目标,我建议使用一个数组数组,其中每个对象代表一个选择,然后它的内容将是该选择的选项。

$scope.selectArray = [
{ name: 'colours', filters: [{ value: 'black' }, { value: 'red' }, { value: 'blue' }] },
{ name: 'months', filters: [{ value: 'January' }, { value: 'February' }, { value: 'March' }] }
];

现在,您可以使用 ng-repeat 迭代 selectArray(在 selectArrays 中选择)来创建选择,然后每个选择将包含另一个 ng -repeat 迭代 select.filters (select.filters 中的过滤器)

我不会编写确切的代码,因为您看起来知道自己在做什么,并且我确信您可以自己轻松地将其组合在一起。

如果您想更改特定选择的数据集,您可以执行以下操作:

$scope.selectArray[1].filters[0].value = 'December';

$scope.selectArray[1].filters = [{ value: 'June' }, { value: 'July' }, { value: 'August' }];

关于javascript - 每次在 ng-repeat 中传递不同的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53393916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com