2

我有这个模板

<div class="row">
    <div>
        <div >
            <a ui-sref-active="active" ui-sref="main.step1">
               <span>1</span>               
            </a>
            <a ui-sref-active="active" ui-sref="main.step2">
               <span>2</span>
            </a>
            <a ui-sref-active="active" ui-sref="main.step3">
               <span>3</span>                
            </a>
        </div>
    </div>
</div>

<div id="form-views" ui-view>

</div>

我要求用户不能通过单击 url 在这些状态之间导航,他应该使用特定模板中的按钮在状态之间导航。

我想知道如何在ui-sref-active没有ui-sref指令的情况下使用?

4

2 回答 2

4

尝试这样的事情:

<ul class="nav navbar-nav">
    <li class="icon-border">
        <a ng-class="{ active: isActiveMainBar('main.step1')}" ui-sref="main.step1">A
          </a>
    </li>
    <li class="icon-border">
        <a ng-class="{ active: isActiveMainBar('main.step2')}" ui-sref="main.step2">B
          </a>
    </li>
    <li class="icon-border">
        <a ng-class="{ active: isActiveMainBar('main.step3')}" ui-sref="main.step3">C
          </a>
    </li>
</ul>

controller

$scope.isActiveMainBar = function(tab) {
    var path = $location.path();
    if (path.indexOf(tab) !== -1) {
        return true;
    } else {
        return false;
    }
};

希望这会帮助你。

于 2017-01-02T10:47:50.910 回答
1

我想出了这个功能:

 function isStateActive(stateName) {
            return $state.current.name === stateName;
 }

并像这样使用它:

 <a  ng-class="{'active': isStateActive('main.step1')}">            <span>1</span>
  </a>
于 2017-01-02T11:04:48.923 回答