所以我最近开始与Angular合作,并且我一直在质疑我所拥有的选择框是如何工作的,我的预期是如何工作的。
生成的HTML是:
<select class="form-control ng-pristine ng-valid ng-not-empty ng-touched" name="status" ng-model="data.user.user.active">
<option value="? number:1 ?" selected="selected"></option>
<!-- ngRepeat: status in lists.states -->
<option ng-repeat="status in lists.states" value="1" ng-selected="true" class="ng-binding ng-scope">Active - 1</option>
<!-- end ngRepeat: status in lists.states -->
<option ng-repeat="status in lists.states" value="2" ng-selected="false" class="ng-binding ng-scope">Inactive - 1</option>
<!-- end ngRepeat: status in lists.states --></select>
我想知道为什么会产生这种情况:
<option value="? number:1 ?" selected="selected"></option>
我的代码是:
<select class="form-control" name="status" ng-model="data.user.user.active">
<option ng-repeat="status in lists.states" value="{{ status.id }}" ng-selected="{{ status.id === data.user.user.active }}">
{{ cs.fields.userStatus[status.status] }}
</option>
</select>
lists.states数组:
[
0 =>
['status' => 'inactive', 'id' => 2],
1 =>
['status' => 'active', 'id' => 1]
]
抓住状态的方法:
// Load States List
AdminFactory.getStates().then((result) => {
$scope.lists.states = result.states;
console.log(result.states);
});
哦,这是用Angular 1编写的,虽然目前有所改进,但无法更新到Angular 2。
答案 0 :(得分:0)
感谢@Sai我发现我的错误与使用ng-selected="statement"
中的花括号有关,因为这是一个Angular属性,它可以直接读出变量,只有大括号才能使用HTML& #39; s selected="{{ statement }}"
版本。