0

Plunker 尝试我正在使用 oi-select 库来选择多个选项,我希望在数据可用时默认选择数据中的第一个值。html代码

<oi-select multiple ng-init="selectedNewRelease=releaseList[0]" 
oi-options="item.releaseId for item in releaseList" ng-model="selectedNewRelease" 
placeholder="Select Releases" 
oi-select-options="{dropdownFilter: 'myDropdownFilter'}" id="selectedReleases" 
ng-change="onReleaseChange();toggleCol();"></oi-select>

我尝试使用 ng-init,分配如下:

 $scope.selectedNewRelease=$scope.releaseList[0];

这实际上有效,但是一旦我选择一个或多个选项,它就会删除默认选择的选项。任何想法请提供任何链接。oi-select 的链接

4

2 回答 2

2

当使用对象而不是数组为(多个)设置默认值时oi-select,选择新项目将导致覆盖原始值。所以你应该用一个Array.Something 来初始化它:

ng-init="selectedNewRelease=[releaseList[0]]

参考这个plunker


更新:

oi-select用于ngModel实现two-way-databinding,并且由于如果未更改数组的 angular 将不会触发更改instance(意味着 ng-change 不会在没有实例更改的情况下触发)。

因此,在推送新项目后,您应该执行以下操作:

$scope.selectedNewRelease = $scope.selectedNewRelease.slice(); // create new instance for the array.
于 2017-04-19T06:45:31.907 回答
0

尝试这个

ng-init="selectedNewRelease=releaseList[0]" 代替ng-init="releaseList[0]"

编辑:

或在加载数据后删除ng-init="selectedNewRelease=releaseList[0]" oi-select 并在控制器中分配值releaseList

喜欢

function controller($scope)
{
Loaddropdown()
{
$http().success(function(data){
$scope.releaseList = data;
$scope.selectedNewRelease =$scope.releaseList[0]//or $scope.selectedNewRelease=$scope.releaseList[0].Id// which id means what's your value  
})
}
}
于 2017-04-19T06:33:42.713 回答