我对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>但不显示初始值。为什么?
发布于 2014-10-04 21:30:15
您的问题是ng-init并不像您认为的那样工作。它主要在某些情况下与ng-select一起使用。Angular文档:https://docs.angularjs.org/api/ng/directive/ngInit
你需要做的只是在控制器中初始化你的模型:
$scope.yourSelect3 = $scope.requirements.item2[0];您的ng-options在语法上是正确的。但是,我建议您更改ng选项,这样迭代器就不会与您的模型共享该名称;这可能会导致各种混淆。
<select ng-model="yourSelect3"
class="form-control"
ng-options="item.StateName for item in requirements.Item2">
</select>发布于 2014-10-04 18:40:03
重写:我之前的回答有点不清楚,漏掉了第二个错误。
第一个问题:ng-中的'yourSelect3‘是一个'temp’变量,只能在ng-options的上下文中使用。您不能将其用作ng-model。
第二个问题:在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,但将statename显示为选项标题,请使用..
<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 -->https://stackoverflow.com/questions/26191795
复制相似问题