gpt4 book ai didi

javascript - AngularJS - 带有 UI 路由器的多步骤表单并使用箭头键导航

转载 作者:行者123 更新时间:2023-11-28 05:16:12 26 4
gpt4 key购买 nike

如何使用箭头键转到下一个或上一个表单步骤。我正在使用 AngularJS UI 路由器。下面的代码可以很好地使用上一个和下一个按钮进行导航。

.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
// route to show our basic form (/form)
.state('wsp', {
url: '/wsp',
templateUrl: 'wsp_step',
controller: 'wspYearController'
})

.state('wsp.first_step', {
url: '/first_step',
templateUrl: 'wsp_step_first'
})

.state('wsp.second_step', {
url: '/second_step',
templateUrl: 'wsp_step_second'
})


$urlRouterProvider.otherwise('/wsp/first_step');
})

要转到我正在做的不同步骤

<button type="button" ui-sref="wsp.first_step">Prev </button>
<button type="button" ui-sref="wsp.third_step">Next</button>

最佳答案

给你。一个 keydown 事件监听器,具有 self 处理事件解除绑定(bind)以及在 $stateChange 之前/之后绑定(bind)的功能。 ng-keydown 在这里对你没有帮助 =(。让我们希望 AngularJS 中的按键处理能够得到改进。你应该可以将它添加到你的 wspYearController 中(如果它在所有你所说的路线)。

/**
* Key press binding
*/
$(document).keydown(function(e) {

switch(e.which) {
case 37: // left arrow
case 39: // right arrow

//clean listener before state change
//else it would be listen all the time :)
$(document).unbind('keydown');

//back and forward all the time to the right place.
if ($state.current.name === 'wsp.first_step') {
$state.go('wsp.second_step');
} else {
$state.go('wsp.first_step');
}
break;

default: return; // exit this handler for other keys
}

// prevent the default action (scroll / move caret)
e.preventDefault();
});

这是一个plunker这向您展示了它的演示。

关于javascript - AngularJS - 带有 UI 路由器的多步骤表单并使用箭头键导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40970211/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com