Как сохранить первый вариант выбранным в oi-select angularjs
Плункер, чтобы попробовать Я использую библиотеку 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
2 ответа
При установке значения по умолчанию для oi-select
(несколько) для объекта, а не для массива, выбор нового элемента приведет к перезаписи исходного значения. Таким образом, вы должны начать с Array
.Что-то вроде этого:
ng-init="selectedNewRelease=[releaseList[0]]
ОБНОВИТЬ:
oi-select
используемый ngModel
достигать two-way-databinding
и так как угловая не сработает, если instance
массива не изменяется (означает, что ng-change не сработает без изменения экземпляра).
Поэтому после добавления новых предметов вы должны сделать что-то вроде этого:
$scope.selectedNewRelease = $scope.selectedNewRelease.slice(); // create new instance for the array.
Попробуй это
ng-init="selectedNewRelease=releaseList[0]"
вместо ng-init="releaseList[0]"
Редактировать:
Или удалить ng-init="selectedNewRelease=releaseList[0]"
на oi-выберите и назначьте значение в контроллере после загрузки 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
})
}
}