您可以将 ng-click 与 ui-sref 一起使用吗? [英] Can you use ng-click with ui-sref?

查看:27
本文介绍了您可以将 ng-click 与 ui-sref 一起使用吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以这样做吗?

<button ng-click='vm.foo()' ui-sref='state'>test</button>

推荐答案

是的.ngClick 将运行,然后您将转换到您的状态.

Yes. ngClick will run, and then you'll transition to your state.

演示(感谢 marioosh)

但是,如果您在 ngClick 中有一个 $event.preventDefault(),它不会将您转换到您的状态.

However, if you have an $event.preventDefault() in ngClick, it won't transition you to your state.

完整代码示例

<!DOCTYPE html>
<html ng-app='app'>

  <head>
    <script data-require="angular.js@1.4.3" data-semver="1.4.3" src="https://code.angularjs.org/1.4.3/angular.js"></script>
    <script data-require="ui-router@*" data-semver="0.2.15" src="//rawgit.com/angular-ui/ui-router/0.2.15/release/angular-ui-router.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body ng-controller='MainController as vm'>
    <ul>
      <li><a ui-sref='home'>home</a></li>
      <li><a ui-sref='one' ng-click='vm.test()'>one</a></li>
      <li><a ui-sref='two'>two</a></li>
    </ul>
    <div ui-view></div>
  </body>

</html>

angular
  .module('app', ['ui.router'])
  .config(config)
  .controller('MainController', MainController)
;

function config($locationProvider, $urlRouterProvider, $stateProvider) {
  $urlRouterProvider.otherwise('/');
  $stateProvider
    .state('home', {
      url: '/',
      templateUrl: 'home.html'
    })
    .state('one', {
      url: '/one',
      templateUrl: 'one.html'
    })
    .state('two', {
      url: '/two',
      templateUrl: 'two.html'
    })
  ;
}

function MainController($scope) {
  var vm = this;
  vm.test = function() {
    alert('test');
    console.log('test');
  }
}

这篇关于您可以将 ng-click 与 ui-sref 一起使用吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆