angular
2017-09-15 323 views 2 likes 
2

我爲客戶端使用Angular 4和Bootstrap 3.3.7,後端使用Django。我有一個下拉菜單,其中的菜單項,像這樣:Angular 4和從下拉菜單中選擇菜單項

 <ul *dropdownMenu class="dropdown-menu"> 
     <li routerLink='/sortedby/name' routerLinkActive="active"><a routerLink='/sortedby/title' routerLinkActive="active">Title</a></li> 
     <li routerLink='/sortedby/artist' routerLinkActive="active"><a routerLink='/sortedby/artist' routerLinkActive="active">Artist</a></li> 
     </ul> 

我的路由是這樣實現的:

const appRoutes: Routes = [ 
    { 
     path:"search", 
     component: SearchDetailComponent, 
    }, 
    { 
     path:"sortedby/:sortby", 
     component: RecordListComponent, 
    }, 
    { 
     path:"", //default path 
     component: HomeComponent, 
     pathMatch: 'full', 
    }, 
    { 
     path:"**", //wildcard 
     component: NotFoundComponent, 
    } 
] 

偉大的工程。當選擇任一菜單項時,RecordListComponent中的ngOnInit方法被調用,最終調用後端來檢索按藝術家或按名稱排序的數據。

我想要做的是,如果用戶在同一行中單擊兩次相同的菜單項,我希望看到數據按升序排序,然後按降序排列。

問題是,當任一菜單項連續兩次被選中,第二次被選中時,ngOnInit永遠不會被調用。

對此提出建議?

回答

1

我不知道我是否瞭解你的權利,但如果你的事件處理,由於文本選擇失敗,你可以通過CSS使文字不可選擇:

li { 
    -webkit-user-select: none; 
    -moz-user-select: none;  
    -ms-user-select: none;  
    user-select: none; 
} 
+0

我希望能夠選擇菜單項目連續兩次,如果它觸發事件。 –

+0

你可能想要處理雙擊事件?看看這個問題,以避免陷阱:https://stackoverflow.com/questions/36113861/angular-2-click-and-dblclick-on-the-same-element-not-working-good – mbnx

+0

謝謝,但雙擊事件不相關。用戶點擊藝術家按照藝術家升序排列項目列表,然後用戶希望以降序查看列表,以便用戶再次選擇藝術家菜單項目。這第二個選擇不是「聽到」。 –

相關問題