angular 中未显示导航栏下拉菜单
Navbar dropdown is not showing in angular
我刚刚将相同的代码复制并粘贴到我的 angular 项目中。但是下拉菜单显示不正确。
我想要两件事来获得帮助。
显示下拉菜单。
原始代码使用硬编码下拉项。
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Something else here</a>
</div>
现在我在组件ts文件中创建了一个数组。
this.items = [
{name: 'Action', url: 'app/aaa'},
{name: 'Another Action', url: 'app/bbb'},
{name: 'Something else here', url: 'app/ccc'}
];
我想使用 *NgFor
来迭代数组而不是硬编码。如何更改html?
如 documentation 中所述,您必须包含一些依赖项才能使 Bootstrap 完全正常工作。
要包含 Bootstrap 所需的库 - 您可以添加 script tags to your index.html
file. At the end of body
.
<my-app>loading</my-app>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
然后,要遍历组件中声明的 items
,您可以 use *ngFor
like below:
<a class="dropdown-item" *ngFor="let item of items; let i = index" [href]="item.url">{{item.name}}</a>
如果您不想使用 jQuery: - 您必须实现逻辑,该逻辑将在单击切换后负责操作。
在这里您可以看到 example 正在实现切换下拉菜单的逻辑。
我刚刚将相同的代码复制并粘贴到我的 angular 项目中。但是下拉菜单显示不正确。
我想要两件事来获得帮助。
显示下拉菜单。
原始代码使用硬编码下拉项。
<div class="dropdown-menu" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Something else here</a> </div>
现在我在组件ts文件中创建了一个数组。
this.items = [
{name: 'Action', url: 'app/aaa'},
{name: 'Another Action', url: 'app/bbb'},
{name: 'Something else here', url: 'app/ccc'}
];
我想使用 *NgFor
来迭代数组而不是硬编码。如何更改html?
如 documentation 中所述,您必须包含一些依赖项才能使 Bootstrap 完全正常工作。
要包含 Bootstrap 所需的库 - 您可以添加 script tags to your index.html
file. At the end of body
.
<my-app>loading</my-app>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
然后,要遍历组件中声明的 items
,您可以 use *ngFor
like below:
<a class="dropdown-item" *ngFor="let item of items; let i = index" [href]="item.url">{{item.name}}</a>
如果您不想使用 jQuery: - 您必须实现逻辑,该逻辑将在单击切换后负责操作。
在这里您可以看到 example 正在实现切换下拉菜单的逻辑。