gpt4 book ai didi

angularjs - Angular : Dropdowns, 防止 ng-selected 触发 ng-change

转载 作者:行者123 更新时间:2023-12-04 02:22:31 25 4
gpt4 key购买 nike

我在 forloop 中填充下拉列表,并希望根据表达式为每个下拉列表设置默认值。这似乎有效,但我的问题是当我通过 ng-selected 设置默认值时,它也会触发不理想的更改事件。

我希望只有在下拉列表实际更改时才会触发更改事件。

<div layout="row" ng-if="layer.Styles && layer.Styles.length > 1">
<md-input-container class="md-icon-float md-block layer-style">
<md-select ng-change="vm.changeLayerStyle(layer,selectedStyle)" ng-model="selectedStyle" ng-model-options="{trackBy: '$value.Name'}" aria-label="Change Layer Style">
<md-option ng-repeat="style in layer.Styles" ng-value="style" ng-selected="style.IsDefault == true">
{{style.DisplayName}}
</md-option>
</md-select>
</md-input-container>
</div>

在下拉菜单中使用 Angular Material

最佳答案

重复选项元素有给人们带来问题的历史。通常我会告诉你使用 ng-options在选择上,但由于您特别需要使用某些 Material 组件,因此不是一个选项。

我知道这不是最漂亮的解决方案,但是您可以通过保留最后一个值的副本并将其与当前值进行比较来解决问题,一旦触发更改事件。如果该值没有改变,则忽略该事件。这可能需要一些额外的调整,因为设置了 layer.Styles可能只会触发很多更新。

既然你没有给我们玩玩,我只能建议你玩ng-model-options (您已经使用它来控制跟踪) updateOn属性并将其设置为设置所选属性不会触发的内容。值 blur想到这里。

关于angularjs - Angular : Dropdowns, 防止 ng-selected 触发 ng-change,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38148800/

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