angularjs ng-click and href on anchor

2019-02-22 10:55发布

问题:

If there's an ng-click and a href together on an anchor the ng-click doesn't work. I want both to work if possible, go to a route and then run a function. My use-case is I have a drawer open with a panel of links, when going to a link I want to close the drawer.

What's an easy way to get both working at the same time?

回答1:

Once you navigate away from the page scripts no longer run.*

Your flow can be something like:

When the user clicks, run a function that does the following:

  • Run the original function you wanted to run
  • Handle any 'navigate away in this specific case' logic.
  • Change location.href to the URL you want to to navigate to.

It's of course possible to extract this behavior to a directive if you find yourself implementing that bit of logic over and over :)

* You can use onbeforeunload but that's not good for plenty of other reasons



回答2:

The question was asking for the wrong thing. Using the href and the ng-click together works perfectly fine, I just had an ui-view in the parent element that prevented any angular bindings from working at all.