Angularjs “输入”上的下一个选项卡-AngularMaterial
我正在我的应用程序中使用Angularjs “输入”上的下一个选项卡-AngularMaterial,angularjs,angularjs-material,Angularjs,Angularjs Material,我正在我的应用程序中使用angular material选项卡。我需要遍历选项卡,通过控制器功能动态更改md选择。这是我的密码 视图: 现在有两个案例 1st: 如果我创建了一个按钮,如按钮,单击此按钮可以正常工作,并且我可以成功地看到选项卡移动,单击此按钮 第二名 事实上,当用户点击enter时,我需要移动到下一个选项卡。所以我所做的就是 $document.bind('keypress', function (e) { if (e.which == 13) { $scope.se
angular material
选项卡。我需要遍历选项卡,通过控制器功能动态更改md选择。这是我的密码
视图:
现在有两个案例
1st:
如果我创建了一个按钮,如按钮
,单击此按钮可以正常工作,并且我可以成功地看到选项卡移动,单击此按钮
第二名
事实上,当用户点击enter
时,我需要移动到下一个选项卡。所以我所做的就是
$document.bind('keypress', function (e) {
if (e.which == 13) {
$scope.selectedIndex = ($scope.selectedIndex + 1) % $scope.tabs.length;
}
});
但这显示了随机行为。有时移动到下一个选项卡,有时不移动。每个选项卡上都有不同类型的输入字段。按enter键仅适用于那些输入了文本类型的选项卡。对于其他任何东西,我必须在按enter键后单击某个地方,然后它移动到下一个选项卡。我需要它移动到下一个标签每当用户点击进入。我做错了什么或错过了什么 您的问题是,您正在更新angular$digest cicle之外的选项卡索引。要快速修复代码,请将此行包装在$timeout()
或$scope.$applyAsync()
中。。。()
在正文标签上使用ng keypess
指令的选项:()
HTML:
<body ng-controller="ChipsController as vm" ng-keypress="changeTab($event)">
<md-tabs md-selected="selectedIndex">
<!-- rest of your code -->
您的问题是您正在更新$digest cicle之外的选项卡索引。要快速修复代码,请将此行包装在$timeout()
或$scope.$applyAsync()
中。。。()
在正文标签上使用ng keypess
指令的选项:()
HTML:
<body ng-controller="ChipsController as vm" ng-keypress="changeTab($event)">
<md-tabs md-selected="selectedIndex">
<!-- rest of your code -->
$scope.$applyAsync(function () {
$scope.selectedIndex = ($scope.selectedIndex + 1) % $scope.tabs.length;
});
<body ng-controller="ChipsController as vm" ng-keypress="changeTab($event)">
<md-tabs md-selected="selectedIndex">
<!-- rest of your code -->
function MainCtrl($scope) {
//...
$scope.changeTab = function(e) {
if (e.keyCode == 13)
$scope.selectedIndex = ($scope.selectedIndex + 1) % $scope.tabs.length;
};
}