Javascript 角度JS多个选择选项添加额外的?选项

Javascript 角度JS多个选择选项添加额外的?选项,javascript,angularjs,Javascript,Angularjs,我正在填充多重选择,如下所示: <select ng-model="myAddress" ng-options="address.addressLines for address in search.result.addresses" > </select> 目前有2项。但是当我加载页面时,它似乎添加了一个额外的空白行 <option value="?" selected="selected" label=""></option> 但当我点击实

我正在填充多重选择,如下所示:

<select ng-model="myAddress" ng-options="address.addressLines for address in search.result.addresses" >
</select>
目前有2项。但是当我加载页面时,它似乎添加了一个额外的空白行

<option value="?" selected="selected" label=""></option>

但当我点击实际的2个项目行时,上面的错误行消失了。知道是什么导致了这种情况吗?

当select最初加载到视图中时,不会从控制器设置模型myAddress。Angular需要一种表示方法,因此它会在选择框中添加一个空选项。选择完成后,将填充该选项并删除空选项,因为它未在绑定到选择的列表中定义

如果不希望出现空白选项,则需要在控制器中设置有效的$scope.myAddress作为默认值

根据您想要完成的任务,实际上有三种选择

您可以保持它现在的工作状态,在进行选择之前,有一个空选项可用。 在控制器中设置初始值,这样就没有空选项可用。 始终有一个空选项可用,即使已将值设置为“选择”。 例如:

HTML:


啊,如果我不想从初始视图中选择任何内容,好吗?无论如何,我猜标准是默认为控制器列表中的第一项?忘记了说选项3,您也可以指定用于空选项的文本,例如-选择一个值-使用选项标记中的所述文本。尽管设置了一个值,我仍然遇到这个问题。最初我使用的是一个对象的属性,所以我设置了一个独立变量,在有效选项中包含一个任意值。仍然得到空白。
<div ng-app="myApp" ng-controller="MainController">
    Select with no value set in controller:<br />
    <select ng-model="select1" ng-options="item.name for item in items">
    </select> {{select1}}
    <br /><br />
        Select with value set in controller:<br />
    <select ng-model="select2" ng-options="item.name for item in items">
    </select> {{select2}}
    <br /><br />
        Select empty option always available (even after selection):<br />
    <select ng-model="select3" ng-options="item.name for item in items">
        <option value=""></option>
    </select> {{select3}}
</div>
angular.module("myApp", [])

.controller("MainController", function ($scope) {
    $scope.items = [
        {id: 1, name: "Item 1"},
        {id: 2, name: "Item 2"},
        {id: 3, name: "Item 3"},
        {id: 4, name: "Item 4"}
    ];

    //initial value for select2
    $scope.select2 = $scope.items[0];    
});