【问题标题】:$index in controller AngularAngular 控制器中的 $index
【发布时间】:2017-06-12 13:56:06
【问题描述】:

如果我点击按钮,我想从 select ng-model="NumProdutos[$index]" 中获取我的价值。

此选择中的可能值是 '1, 2, 3' 并且此选择位于带有 ng-repeat 的 div 内

这是我的 html 代码:

<select class="form-control"
        style="max-width:55%;"
        ng-model="NumProdutos[$index]"
        ng-options="obj.NumProdutos as obj.NumProdutos for obj in NumeroProdutos"
        ng-change="functionnumprodutos(NumProdutos[$index], {{x[0].NumPostoAgendamento}})"></select>

<input type="submit" value="teste" ng-click="teste($index)" class="btn btn-primary" />

控制器

$scope.teste = function (a) {
    console.log('a: ', a);

    console.log('N NumProdutos: ', $scope.NumProdutos[a]);
    console.log('N NumProdutos: ', $scope.NumProdutos);
    console.log('N NumProdutos: ', $scope.NumProdutos[$index]);
}

我尝试了 console.log,但我不知道如何获取 ng-model="NumProdutos[$index]" 的值

【问题讨论】:

    标签: angularjs indexing


    【解决方案1】:

    试试这个:

    HTML:

    <select class="form-control"
        style="max-width:55%;"
        ng-model="NumProdutos[$index]"
        ng-options="obj.NumProdutos as obj.NumProdutos for obj in NumeroProdutos"
        ng-change="getIndex($index);functionnumprodutos(NumProdutos[$index], {{x[0].NumPostoAgendamento}})">
    </select>
    
    <input type="submit" value="teste" ng-click="teste(itemIndex)" class="btn btn-primary" />
    

    控制器:

    $scope.itemIndex = null;
    $scope.getIndex = function (a) {
        $scope.itemIndex = a;
    }
    
    $scope.teste = function (a) {
        console.log('a: ', a);
        console.log('N NumProdutos: ', $scope.NumProdutos[a]);
        console.log('N NumProdutos: ', $scope.NumProdutos);
        console.log('N NumProdutos: ', $scope.NumProdutos[$index]);
    }
    

    【讨论】:

      【解决方案2】:

      问题是 $index 只为 ng-repeat 定义,而不是 ng-options。所以请继续以下方法,您将在 ng-change 本身中获得索引。谢谢

      function LoginController($scope) {
      
          $scope.NumeroProdutos = [{"NumProdutos":1},{"NumProdutos":2},{"NumProdutos":3}];
          $scope.itemIndex = null;
      $scope.getIndex = function (a) {
         console.log(a);
         console.log('N NumProdutos: ', $scope.NumeroProdutos[a]);
      }
      }
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
      <div ng-app ng-controller="LoginController">
      
      <select class="form-control" ng-init="indexvalue"
          style="max-width:55%;"
          ng-model="NumProdutos" 
          ng-options="obj.NumProdutos for obj in NumeroProdutos"
          ng-change="getIndex(NumeroProdutos.indexOf(NumProdutos));">
      </select>
      
      </div>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多