#angular #angular6
#angular #angular6
Вопрос:
Например, текст кнопки — «пожалуйста, выберите любой из приведенных ниже вариантов», а опции — «Еда», «Напитки», «Сон». Если я выберу «Питание», я хочу, чтобы текстом было «Питание», а не «пожалуйста, выберите любой из приведенных ниже вариантов».
Я использую ng-bootstrap 4.1.0 и bootstrap 4.3.1.
1) Модули, которые я импортировал в mycomponent.ts
импортируйте {Component, OnInit} из ‘@angular / core’;
импортируйте { NgbModal, модальные причины отказа, NgbModalRef } из ‘@ng-bootstrap /ng-bootstrap’;
2) Ниже приведено содержимое mycomponent.html
<script type="text/ng-template">
$(".dropdown-menu li a").click(function () {
$(this).parents(".dropdown").find('.btn').html($(this).text() ' <span class="caret"></span>');
$(this).parents(".dropdown").find('.btn').val($(this).data('value'));
});
</script>
<ng-template #content let-modal>
<div class="modal-body">
<form>
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
<li><a href="#" data-value="action">Action</a></li>
<li><a href="#" data-value="another action">Another action</a></li>
<li><a href="#" data-value="something else here">Something else here</a></li>
<li><a href="#" data-value="separated link">Separated link</a></li>
</ul>
</div>
</form>
</div>
</ng-template>
Комментарии:
1. Можете ли вы создать stackblitz.com демо для этого?
2. @alt255 Извините, но это невозможно. Но если вы хотите узнать что-нибудь еще о коде, я обязательно расскажу вам. Я удивлен, насколько сложно найти решение для чего-то очень тривиального
3. Вы уверены, что эта проблема связана с Angular? Я не вижу ни одной из директив, которые отображаются на демонстрационной странице для NgBootstrap ( ng-bootstrap.github.io/#/components/dropdown/examples ). В частности,
ngbDropdown
,ngbDropdownToggle
иngbDropdownMenu
. Кроме того, я удивлен включенным вами кодом jQuery — в Angular в этом не должно быть необходимости (и фактически, его следует избегать).4. @wanttomasterpython, вы используете Angular, поэтому не используйте jQuery — на самом деле, если вы используете ng-bootstrap, вы не должны использовать bootstrap (только bootstrap.css). Ну, это так легко сделать, как
<button>{{selected?selected:'choose one option'}}</button>
-выбранная переменная в вашем .ts, которая должна давать значение, см. angular.io/guide/displaying-data#displaying-data