基于观察者布尔值执行ui-sref?

时间:2016-03-21 07:13:43

标签: javascript angularjs

我有一个按钮(在第1部分中),点击执行一个功能来更新视图,然后再转到下一部分(第2部分)。

<button ng-click="checkout.updateView(info)" ng-disabled="checkout.isUpdatingView" ui-sref="view.section2" class="layout__section1>
    <span ng-hide="checkout.isUpdatingView">Update and Continue</span>
    <span ng-show="checkout.isUpdatingView">Updating <span class="spinner"></span></span>
</button>

它调用函数

vm.isUpdatingView = false;

function updateView(info) {
        vm.isUpdatingView = true;
        ..does some stuff and on success...
        vm.isUpdatingView = false;
}

问题是点击这个按钮直接转到第2部分因为ui-sref ..我需要它才能在视图成功更新后转到第2部分。我希望微调器能够反映UpdatingView过程。我如何改变这一点,以便ui-sref在调用isUpdatingView后观察 <div style="padding: 1vw;"> <a href="/virtualscribe" class="camLink"> <div class="camDiv"> <div class="camBox" id="picBoxLeft"> <canvas id="canvasLeft" class="camBorder"></canvas> </div> </div> </a> <a href="/videos" class="camLink"> <div class="camDiv"> <div class="camBox" id="picBoxCenter"> <canvas id="canvasCenter" class="camBorder"></canvas> </div> </div> </a> <div class="camDiv"> <div class="camBox" id="picBoxRight"> <canvas id="canvasRight" class="camBorder"></canvas> </div> </div> </div> 的变化,如果成功则调用第2节?我是Angular的新手,所以任何其他建议都值得赞赏!

1 个答案:

答案 0 :(得分:1)

不要在模板中使用ui-sref,而是在函数中使用$state.go()。只需添加

if(vm.isUpdatingView == true) {
    $state.go("view.section2"):
}

更多信息here