用于下拉的ng-init不能通过api调用工作

时间:2016-08-08 10:58:57

标签: angularjs

我正在调用API并使用此响应填充选择下拉列表。我正在尝试使用“请选择一个国家/地区”预先填充选择下拉框,但是当从api调用返回国家/地区时,以下内容无法正常工作,因为我认为此阶段未定义$scope.countries.select

HTML

<select ng-init="countries.select" ng-model="country" ng-change="getRoles(country)" ng-options="key as value for (key , value) in countries"></select>

从api调用返回的countries对象如下所示:

$scope.countries = {
  AU:"Australia",
  BE:"Belgium",
  US:"United States"
}

然后我将以下内容推入

$scope.countries.select = "Please select a country";

由于countries.select未被定义为仍需要返回api响应,我认为这是不起作用的原因。

1 个答案:

答案 0 :(得分:0)

您没有正确初始化国家/地区的价值。由于js不知道什么是国家,因此您无法分配countries.select,因为国家/地区未定义。首先初始化国家以清空对象= {}。

但是,如果您只需要显示列表的默认选定选项以阅读&#34;请选择一个国家&#34;你可以这样做。

<select ng-model="country" ng-change="getRoles(country)" ng-options="key as value for (key , value) in countries">
<option value="">Please choose a country</option>
</select>