diff --git a/packages/oui-navbar/README.md b/packages/oui-navbar/README.md index 86558664..f90107e8 100644 --- a/packages/oui-navbar/README.md +++ b/packages/oui-navbar/README.md @@ -250,6 +250,7 @@ This property is only available for root links of `main-links`. "title": String, "url": String, "isPrimary": Boolean, + "click": Function, "subLinks": Array[{ "label": String, "title": String, @@ -595,3 +596,4 @@ The property `name` **must be** `"user"`. | `state` | string | @? | yes | n/a | n/a | state of the link | `state-params` | object | { expect(toggler.attr("aria-expanded")).toBe("false"); }); }); + + describe("Links", () => { + const data = mockData.mainLinks[0]; + + it("should call click callback", () => { + const onClickSpy = jasmine.createSpy("onClickSpy"); + const navbar = testUtils.compileTemplate( + ` + + + + + `, { + name: data.name, + title: data.title, + url: data.url, + onClick: onClickSpy + }); + + $timeout.flush(); + + const link = angular.element(navbar[0].querySelector(".oui-navbar-link")); + link.triggerHandler("click"); + + expect(onClickSpy).toHaveBeenCalled(); + }); + }); }); }); diff --git a/packages/oui-navbar/src/link/navbar-link.component.js b/packages/oui-navbar/src/link/navbar-link.component.js index 65f2e78f..c6c38147 100644 --- a/packages/oui-navbar/src/link/navbar-link.component.js +++ b/packages/oui-navbar/src/link/navbar-link.component.js @@ -12,7 +12,8 @@ export default { state: "@?", stateParams: " + ng-bind="::$ctrl.text" + ng-click="$ctrl.onClick()"> + ui-sref-active="oui-navbar-link_active" + ng-click="$ctrl.onClick()"> diff --git a/packages/oui-navbar/src/menu/navbar-menu.html b/packages/oui-navbar/src/menu/navbar-menu.html index 5642d6e7..1e2cd02d 100644 --- a/packages/oui-navbar/src/menu/navbar-menu.html +++ b/packages/oui-navbar/src/menu/navbar-menu.html @@ -31,7 +31,7 @@

'oui-navbar_desktop-only': !!menuLink.subLinks, 'oui-navbar-link_external': !!menuLink.isExternal }" - ng-click="$ctrl.navbarCtrl.toggleMenu()" + ng-click="$ctrl.closeMenuWithCallback($event, menuLink.click)" ng-href="{{::menuLink.url}}" oui-navbar-group="{{::$ctrl.menuName}}" oui-navbar-group-last="::$last"> @@ -50,7 +50,7 @@

ng-class="::{ 'oui-navbar_desktop-only': !!menuLink.subLinks }" - ng-click="$ctrl.navbarCtrl.toggleMenu()" + ng-click="$ctrl.closeMenuWithCallback($event, menuLink.click)" ng-bind="::menuLink.title" ui-sref="{{::$ctrl.constructor.getFullSref(menuLink)}}" oui-navbar-group="{{::$ctrl.menuName}}" @@ -60,7 +60,7 @@