Is there a simple way to use button to navigate page as a link does in angularjs

后端 未结 7 1417
慢半拍i
慢半拍i 2020-12-23 21:31

In angularjs, I want to use button like this, but I still need the button looking.

7条回答
  •  死守一世寂寞
    2020-12-23 21:56

    Your ngClick is correct; you just need the right service. $location is what you're looking for. Check out the docs for the full details, but the solution to your specific question is this:

    $location.path( '/new-page.html' );
    

    The $location service will add the hash (#) if it's appropriate based on your current settings and ensure no page reload occurs.

    You could also do something more flexible with a directive if you so chose:

    .directive( 'goClick', function ( $location ) {
      return function ( scope, element, attrs ) {
        var path;
    
        attrs.$observe( 'goClick', function (val) {
          path = val;
        });
    
        element.bind( 'click', function () {
          scope.$apply( function () {
            $location.path( path );
          });
        });
      };
    });
    

    And then you could use it on anything:

    
    

    There are many ways to improve this directive; it's merely to show what could be done. Here's a Plunker demonstrating it in action: http://plnkr.co/edit/870E3psx7NhsvJ4mNcd2?p=preview.

提交回复
热议问题