javascript - 使用 ui-sref 在按钮标签中触发状态

标签 javascript angularjs angularjs-directive angular-ui-router

使用 angular-ui-router 触发状态的优雅方式是什么?通过点击 <button>

我正在使用 ui-sref="main"虽然它与 <a> 一起使用,但它似乎不起作用尽管。

HTML:

<!DOCTYPE html>
<html ng-app="plunker">

<head>
  <meta charset="utf-8" />
  <title>AngularJS Plunker</title>
  <link data-require="bootstrap-css@3.1.1" data-semver="3.1.1" rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" />
  <script>
    document.write('<base href="' + document.location + '" />');
  </script>
  <link rel="stylesheet" href="style.css" />
  <script data-require="angular.js@1.2.x" src="http://code.angularjs.org/1.2.13/angular.js" data-semver="1.2.13"></script>
  <script src="http://angular-ui.github.io/ui-router/release/angular-ui-router.js" ></script>
  <script src="app.js"></script>
</head>

<body ng-controller="MainCtrl">

  <nav class="navbar navbar-default">
    <div class="navbar-header">
      <a class="navbar-brand" href="#">Brand</a>
    </div>  
    <ul class="nav navbar-nav navbar-left">
      <li>
        <button class="btn btn-danger navbar-btn" ui-sref="main" >Button Submit</button>
      </li>
      <li>
        <a class="btn btn-danger navbar-btn" ui-sref="main" >Anchor Link Submit</a>
      </li>
    </ul>
  </nav>


</body>

</html>

Javascript:

var app = angular.module('plunker', ['ui.router']);

'use strict';

app.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function($stateProvider, $urlRouterProvider, $locationProvider) {

  $stateProvider
    .state("main", {
      url: "/main",
      resolve: {
        test: function() {
          alert("Triggered main state");
          return true;
        }
      }
    });

}]);


app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';
});

链接:http://plnkr.co/edit/vMtLN0ncpqAfgM6S1Ng4?p=preview

最佳答案

将按钮包裹在 anchor 中,一切顺利:

<a ui-sref="main">
    <button class="btn btn-danger navbar-btn" >Button Submit</button>
</a>

DEMO

关于javascript - 使用 ui-sref 在按钮标签中触发状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22124663/

相关文章:

javascript - 无法比较 JavaScript 中的当前日期和表单日期( Angular 形式)

javascript - 从 facebook url 中提取 id 值

javascript - 在 angularjs 中手动触发 $watch 事件

javascript - 在 ng-model 中具有单向绑定(bind)的两个输入

angularjs - Angular ng 检查项目是否在列表中

javascript - 如何从 JSON 对象获取值

javascript - jQuery:显示 <p> 超出一行的内容

javascript - angular.js 按键指令事件神秘地没有触发

javascript - 计算 Angular 的 $digest 周期

javascript - 说明相对于根目录的指令 templateUrl