Angular selectbox未选择默认值

时间:2017-03-02 11:41:36

标签: angularjs

所以我最近开始与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。

1 个答案:

答案 0 :(得分:0)

感谢@Sai我发现我的错误与使用ng-selected="statement"中的花括号有关,因为这是一个Angular属性,它可以直接读出变量,只有大括号才能使用HTML& #39; s selected="{{ statement }}"版本。