我正在使用以下代码进行ng-init:
<select ng-model="yourSelect3"
class="form-control"
ng-init="yourSelect3=requirements.Item2[0]"
ng-options="yourSelect3.StateName for yourSelect3 in requirements.Item2">
</select>
但是不显示初始值。为什么呢?
答案 0 :(得分:3)
您的问题是ng-init没有按照您的想法执行。它主要用于某些使用ng-select的情况。 Angular doc:https://docs.angularjs.org/api/ng/directive/ngInit
您需要做的只是在控制器中初始化您的模型:
$scope.yourSelect3 = $scope.requirements.item2[0];
你的ng-options在语法上是正确的。但是,我建议您更改ng-options,以便迭代器不与您的模型共享名称;这可能导致各种混乱
<select ng-model="yourSelect3"
class="form-control"
ng-options="item.StateName for item in requirements.Item2">
</select>
答案 1 :(得分:-2)
REWRITE:我之前的回答有点不清楚,错过了第二次错误。
第一个问题:ng-options中的'yourSelect3'是'temp'变量,仅在ng-options 的上下文中使用。您不能将其用作ng模型。
第二个问题:你在ng-options中使用'StateName'属性作为选择值,但你的ng-init试图将整个对象分配为选择值。
因此...
如果你想让StateName作为choosenValue使用..
<select ng-model="choosenValue"
class="form-control"
ng-init="choosenValue=requirements.Item2[0].StateName"
ng-options="yourSelect3.StateName for yourSelect3 in requirements.Item2">
</select>
<!-- for debugging --> {{ choosenValue }} <!-- should show a statename -->
否则,如果您希望将对象作为choosenValue但显示州名作为选项标题使用..
<select ng-model="choosenValue"
class="form-control"
ng-init="choosenValue=requirements.Item2[0]"
ng-options="yourSelect3 as yourSelect3.StateName for yourSelect3 in requirements.Item2">
</select>
<!-- for debugging --> {{ choosenValue | json }} <!-- should show the object -->
<!-- for debugging --> {{ choosenValue.StateName }} <!-- should show a statename -->