首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NG2-下拉菜单在angular2中不起作用

NG2-下拉菜单在angular2中不起作用
EN

Stack Overflow用户
提问于 2017-01-12 18:14:26
回答 1查看 1.6K关注 0票数 0

我被困在这件事上好几个小时了,变得非常绝望。我有一个为学校项目制作的angular2应用程序,但我想做的是,当我点击+按钮时,这个下拉菜单就会弹出来,当我再次点击它,或者当我点击一个链接时,它就会再次关闭。现在,它一直处于打开状态,当我单击它时,它不会执行任何操作

我尝试过许多不同的方法,从ng2-dropdown到显示或隐藏菜单的javascript文件。我别无选择,对此真的很沮丧。

this is the html element in the browser before i click the +

this is the html element in the browser after i click the +

我已经为ng2-dropdown模块做了适当的导入,这应该会让它工作。它可能是一些小的和愚蠢的东西,但我看不出来。

这是我的app.component,它将导航栏作为模板。单击I路由到其他组件html's。

代码语言:javascript
运行
复制
@Component({
selector: 'ls-app',
styleUrls: ['./app/css/fonts.css','./app/css/sass.css'],

template: `
<header id="header">
    <nav role='navigation' class="main-nav" id="main-nav">
        <ul id="main-nav-list">
            <div class="navgroup">
                <li><a [routerLink]="['/home']"class="navlogo" href="./leagues/home.component.html"><img class="logo" src="./app/img/logo.png" alt="logo"></a></li>
            </div>
            <div class="navgroup">
               <li>
<a [routerLink]="['/play']"class="navtitle" href="./leagues/play.component.html"><img class="imgMainNav" src="./app/img/play.svg" alt="play">Speel</a>
</li>
<li><a [routerLink]="['/stats']"class="navtitle"     href="./leagues/stats.component.html"><img class="imgMainNav"     src="./app/img/chart.png" alt="chart">Stats</a></li>
<li><a [routerLink]="['/leagues']"class="navtitle" href="./leagues/join-league.component.html"><img class="imgMainNav" src="./app/img/chart.png" alt="chart">Join League</a></li>

            </div>
            <div class="navgroup login">

                <div class="add-button" dropdown [dropdownToggle]="true">
                    <div  dropdown-open > +</div>

                    <ul class="dropdown" >

                        <a [routerLink]="['/account']"href="leagues/account.component.html"><li><i class="fa fa-check-square-o fa-2"></i>Mijn account</li></a>
                        <a [routerLink]="['/play']"href="leagues/play.component.html"><li><i class="fa fa-comments fa-2"></i>Plaats pronostiek</li></a>
                        <a [routerLink]="['/leagues']"href="leagues/join-league.component.html"><li><i class="fa fa-clipboard fa-2"></i>Nieuwe competitie</li></a>
                        <a href=""><li><i class="fa fa-user-plus fa-2"></i>Shop</li></a>
                        <a href=""><li><i class="fa fa-user-plus fa-2"></i>Log out</li></a>

                    </ul>
                </div>
                <li><a class="navtitle loginnav login-window" onclick="hierkomtdefunctievanjavascriptfile()" ><img class="imgMainNav" src="./app/img/fa-user.png" alt="login">Login/Register</a></li>
            </div>
        </ul>
    </nav>
</header>

这是我为dropdown类准备的css (实际上是sass,但在运行时被转换),以防万一。因此,当我单击该按钮时,该类为.dropdown,再次单击时,它应更改为.hidden

代码语言:javascript
运行
复制
.dropdown {
position: relative;
top: 25px;
margin: 0 auto;
padding: 5px 0 0 0;
width: 200px;
height: auto;
background: $primary_color1_white;
border: 1px solid $primary_color2_black;
border-radius: 3px;
list-style: none;

&:before {
content: "";
border-width: 1px 0 0 1px;
border-style: solid;
border-color: #A1A4AA;
background: $primary_color1_white;
height: 14px;
width: 14px;
position: absolute;
top: -7px;
transform: translateX(-50%) rotate(45deg);
}

a {
text-decoration: none;
color: $primary_color2_black;
font-size: 1em;

li {
  text-align: left;
  padding:  10px 15px;
  margin: 0;

  i {
    margin-right: 10px;
  }
}
&:hover {
  color: #ffffff;
  li {
    background: linear-gradient(to top right, $primary_color1_white, $melon      30%);  } } } }
.hidden{visibility: hidden;}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-12 18:28:44

在您的模板中修改以下内容:

代码语言:javascript
运行
复制
<div class="add-button" dropdown>
  <div (click)="toggleDropdown()"> +</div>

  <ul class="dropdown" *ngIf="showDropdown">

    <a (click)="toggleDropdown()" [routerLink]="['/account']" href="leagues/account.component.html">
      <li><i class="fa fa-check-square-o fa-2"></i>Mijn account</li>
    </a>
    <a (click)="toggleDropdown()" [routerLink]="['/play']" href="leagues/play.component.html">
      <li><i class="fa fa-comments fa-2"></i>Plaats pronostiek</li>
    </a>
    <a (click)="toggleDropdown()" [routerLink]="['/leagues']" href="leagues/join-league.component.html">
      <li><i class="fa fa-clipboard fa-2"></i>Nieuwe competitie</li>
    </a>
    <a (click)="toggleDropdown()" href="">
      <li><i class="fa fa-user-plus fa-2"></i>Shop</li>
    </a>
    <a (click)="toggleDropdown()" href="">
      <li><i class="fa fa-user-plus fa-2"></i>Log out</li>
    </a>

  </ul>
</div>

然后在你的组件逻辑中:

代码语言:javascript
运行
复制
showDropdown: boolean = false;

toggleDropdown():void { 
   this.showDropdown = !this.showDropdown;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41610437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档