Javascript 如何在下拉列表中预选所选项目?[角度]

Javascript 如何在下拉列表中预选所选项目?[角度],javascript,angularjs,Javascript,Angularjs,我目前有一项服务,它会给我一份州列表。该数组如下所示: model.Address.StateList = [ { Disabled: false, Group: null, Selected: false, Text: "CA", Value: "1" }, { Disabled: false, Group: null, Selected: false, Text: "IL

我目前有一项服务,它会给我一份州列表。该数组如下所示:

model.Address.StateList = [
     { Disabled: false,
       Group: null,
       Selected: false,
       Text: "CA",
       Value: "1"
      },
 { Disabled: false,
       Group: null,
       Selected: false,
       Text: "IL",
       Value: "2"
      },
      { Disabled: false,
       Group: null,
       Selected: false,
       Text: "NJ",
       Value: "3"
      }
]
我还将从服务返回他们实际选择的状态,如下所示:

 model.Address.State = "CA"
我已经搜索了stackoverflow,试图找到一种方法来实现这一点,但我不知道如何在列表中预先选择值

我试过这个:

<select id="State" ng-model="model.Address.State" ng-change="changeState(model.Address.State)" ng-options="option as option.Text for option in model.Address.StateList track by option.Value"></select>
但这只是挑选第一项

问题似乎在于我有一个状态集合,但我想要的模型只是单个文本。理想情况下,我希望设置要添加到模型对象的所选对象,以便在保存时,我可以将“model”传递给我的api,并提供我需要的所有值。

有关可能的解决方案,请参阅

我在那里使用了一个范围变量
selectedState
,并在
ng model
属性中使用它,但是如果您愿意,可以将其替换为
model.Address.State


由于使用
ngModel
指令绑定
model.Address.State
,并使用
track by option.Value
,因此可以将
model.Address.State
的值设置为要设置为活动的选项的值:

model.Address.State = "1";
如果要改为使用
“CA”
,可以将
ng型号
更改为当前范围的属性:

<select ng-model="model.Address.State" ng-options="option.Text as option.Text for ... track by Text" ...>

$scope.selectedState = "CA";

$scope.selectedState=“CA”;

要用于
ng型号的值应与
ng选项中使用的值匹配。例如:

model.Address.State = "CA"; // matches the Text property
<select id="State" ng-model="model.Address.State" ng-options="option.Text for option in model.Address.StateList"></select>
希望能有帮助。

我想出来了

多亏了这本有见地的指南,我对ng选项和角度选择有了更多的了解

最终的问题是,我需要指定下拉列表中显示的文本与模型中的文本匹配。使其工作的最终代码是:

 <select id="State" ng-model="model.Address.State" ng-options="option.Text as option.Text for option in model.Address.StateList"></select>


您正在使用表单吗?目前还没有,您没有看到这些答案吗@georgeawg您的链接是$http,但我在发布之前确实签出了,这可能会有所帮助。这似乎对我根本不起作用。我有这个,但是model.Address.State在加载时是“CA”,但没有选择任何内容。在ng change函数中,我看到model.Address.State等于状态列表中的整个模型。意思是,如果我选择IL,那么model.Address.State等于StateList[1]在我的第一个答案中完全需要
option.Text作为option.Text,而这正是有效的。。。我不会说这一点都没有帮助=PI说它“根本”不适合我,这是一个错误。谢谢你的见解,这似乎对我不起作用。我试过你的和@foxdonut,运气都不好。我似乎无法将model.Address.State(即“CA”)作为所选值。当我查看selected更改时的状态时,该值将成为objectI。我已经创建了一个JSFIDLE来演示您想要的行为:这与我的第一个答案相同,只是需要
option.Text as option.Text
was close!:)
model.Address.State = "1"; // matches the Value property
<select id="State" ng-model="model.Address.State" ng-options="option.Text as option.Value for option in model.Address.StateList"></select>
 <select id="State" ng-model="model.Address.State" ng-options="option.Text as option.Text for option in model.Address.StateList"></select>