Как получить значение (индекс) inputbox в angularjs

#angularjs #angularjs-directive #angularjs-scope

#angularjs #angularjs-директива #angularjs-область

Вопрос:

Angularjs

 <tr ng-repeat="advLi in media">
    <td>
        <input style="display:none;" type="text" style="width:35px;" class="form-control" name="mediaindex" value="{{$index 1}}" ng-model="advLi.media_order">
    </td>
    <td>{{advLi.media_name}}</td>
</tr>
  

когда я отправляю форму, в списке «media» не отображается media_order, отображается только media_name. Как я могу получить значение media_order в контроллере.

Комментарии:

1. У вас есть style=»display: none;» и style =»width: 35px;» в вашем элементе ввода

Ответ №1:

Если я правильно понял вашу проблему, вы хотите отобразить значение индекса элементов в виде порядкового номера в текстовом поле, и пользователь может изменить его позже, чтобы изменить порядок.

Затем я добавил ng-init="advLi.media_order = $index 1" в ваш входной тег, чтобы при создании нового элемента DOM ng-repeat мы вводили ng-model значение с индексом 1, которое будет отображать порядковый номер в текстовом поле.Я также удалил стиль, который скрывает ваше текстовое поле.

 var app = angular.module('app', []);

app.controller('MainCtrl', function($scope) {
  
  $scope.media =[{media_name:"Still"},{media_name:"Gangsta"},{media_name:"Weed it out"}];
  
  $scope.submit = function (){
    
    angular.forEach($scope.media,function(val,key){
      
      console.log(val.media_order   ' - '  val.media_name);
      });
    };
  });  
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app="app" ng-controller="MainCtrl">
  <table> 
    <tr ng-repeat="advLi in media">
    <td>
        <input  type="text" style="width:35px;" class="form-control" name="mediaindex" value="{{$index 1}}" ng-init="advLi.media_order = $index   1" ng-model="advLi.media_order">
    </td>
      <td>{{$index  1}} </td>
    <td>{{advLi.media_name}}</td>
      <td>{{advLi.media_order}}</td>
</tr>
    </table>
  <button ng-click="submit()">Submit </button>
  </body>  

Ответ №2:

Это может быть вызвано undefined начальным значением ng-model . Попробуйте поменять местами порядок атрибутов или установить правильный ng-model