gpt4 book ai didi

angularjs - select 中未设置初始 ng-model 值

转载 作者:行者123 更新时间:2023-12-03 06:27:28 28 4
gpt4 key购买 nike

我有一个枚举(我使用 TypeScript 进行编码):

export enum AddressType
{
NotSet = 0,

Home = 1,
Work = 2,
Headquarters = 3,

Custom = -1,
}

然后在我的 Controller 中,我有一个名为 type 的字段,我在其中设置应在选择输入中选择的初始值(我将其设置为 AddressType.Headquarters)。

最后,在 HTML 中我添加了以下内容:

<select ng-model="Ctrl.type" ng-options="addressType for addressType in Ctrl.getAddressTypes()"></select>

一切似乎都工作正常,除了一件事:由于某种原因,在更新所有绑定(bind)后,Angular 最初不会在选择中选择“3”(总部)。 Angular 创建了一个像这样的额外选项:

<option value="?" selected="selected"></option>

由于某种原因,Angular 无法计算出在组合中选择的初始选项。

如果用户选择组合框的另一个选项,Ctrl.type 会正确更新,因此该部分的绑定(bind)工作正常。基本上我的问题只是最初应该选择的选项没有按预期选择。

我在这里缺少什么导致了这个问题?

最佳答案

发现问题:

Ctrl.getAddressTypes() 返回的数组是一个字符串数组:

["0", "1", "2", "3", "1"]

并且 Ctrl.type 中存储的内容是数字类型。

AngularJS 使用“===”运算符将提供给 ng-options 的数组与提供给 ng-model 的值进行比较。在这种情况下 3 不等于“3” - 这就是它不起作用的原因。

关于angularjs - select 中未设置初始 ng-model 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20201628/

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