Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs “输入”上的下一个选项卡-AngularMaterial_Angularjs_Angularjs Material - Fatal编程技术网

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;
  };
}