2015-04-03 67 views
2

我想添加一個新的選擇每一個按鈕被點擊時,不工作時NG-模型角度UI的選擇佔位符初始化

的HTML:

<div ng-repeat = "select in selects track by $index"> 
    <ui-select ng-model="selects[$index]" theme="select2" ng-disabled="disabled" style="min-width: 300px;"> 
    <ui-select-match placeholder="Select a person in the list or search his name/age...">{{$select.selected.name}}</ui-select-match> 
    <ui-select-choices repeat="person in people"> 
     <div ng-bind-html="person.name | highlight: $select.search"></div> 
    </ui-select-choices> 
    </ui-select> 
</div> 
<button ng-click="addNewSelect()"> Add new select</button> 

控制器:

$scope.selects = [{}]; 
    $scope.addNewSelect = function() { 
    $scope.selects.push({}); 
    } 

對象數組被保存在數組'selected'中,但佔位符不會進入選擇,因爲我最初使用空對象初始化ng模型。如何讓他佔位符在這種情況下工作?

這裏是Plunker爲相同。

回答

8

您在selects[$index]之後缺少.selected

沒有這個,ui-select相信你選擇了一個空對象(selects[$index]),並且不會顯示佔位符。

<ui-select ng-model="selects[$index].selected" theme="select2" ng-disabled="disabled" style="min-width: 300px;"> 

http://plnkr.co/edit/56SHyE01BJ4EXglLlIcb?p=preview

還你不需要查找使用索引,你可以只使用select.selected

<ui-select ng-model="select.selected" theme="select2" ng-disabled="disabled" style="min-width: 300px;"> 

http://plnkr.co/edit/3Uq8lDtDOaj5mIZVrCfv?p=preview

+1

此前使用的是angularstrap選擇,最初的佔位符即使對象是空的,所以錯過了這個,謝謝 – Anubha 2015-04-03 11:21:19

1

要做到這一點添加CSS顯示的最快方法:塊佔位符項目。

.select2-chosen{ 
    display: block !important; 
}