Это мой фрагмент кода:
<select class="form-control" name="" id="" ng-model="offerId">
<option value="">Choose</option>
<option ng-repeat="offer in offers " value="{{ offer.id }}"
ng-selected="offerId == offer.id">
{{offer.supplier.name}}
({{offer.request.name}})
</option>
</select>
Он работает по своему желанию. Проблема или странное поведение заключается в том, что, если я изменю ngModel (offerId) из других компонентов/триггеров, в списке будет добавлено новое значение свободного места; который ведет себя так же, как опция "Выбрать" по умолчанию, и когда из опции выбора/выбрана любая опция (включая параметр "Пусто"), опция "Пустое пространство" исчезает, а другие функциональные возможности такие же, ТОЛЬКО ОСТОРОЖНОЕ ПРОСТРАНСТВО ВЕРОЯТНО.
Я также использовал ngOptions, но функциональность изменилась, поэтому я хочу придерживаться этой реализации.
Это особенность?
Некоторые фрагменты кода:
$scope.clearAttachedFiles = function () {
$scope.attachedFiles = {uploads: null, links: null};
};
$scope.$watch('offerId', function (a, b) {
if ($scope.offerId) {
offerId = $scope.offerId;
}
if ((typeof a == 'undefined' || typeof a == 'null') && (typeof b == 'undefined' || typeof b == 'null')) {
return;
}
if (a === '') {
$scope.level = 'EVENT';
$scope.privateMessage = true;
$scope.offer = null;
}
else {
$scope.level = 'OFFER';
$scope.privateMessage = false;
angular.forEach($scope.offers, function (offer) {
if (offer.id == a) {
$scope.offer = offer;
}
});
}
$scope.getPaginatedActivities();
$scope.resetActivitiesList();
$scope.currentPage = 1;
});
Вы используете его неправильно, ng-options есть по какой-то причине.
Когда вы используете ng-repeat, вы добавляете наблюдателя для каждой опции в массиве, и производительность может быть очень плохой. Также значение value = {{}} будет иметь проблемы, потому что это не правильный способ сделать это, в зависимости от времени компиляции и других факторов выбор может принимать {{}} как значение вместо оцененного выражения. Вероятно, причина, по которой выбран пробел.
Используйте ngOptions, гибко и легко заставить его работать. Здесь документы: https://docs.angularjs.org/api/ng/directive/ngOptions
Задайте любой вопрос, связанный с этим!