2014-11-24 6 views
0

У меня есть < tr>, который управляется через ng-repeat для прохождения в объекте. Один из элементов < td> является текстовым полем, и у меня есть функция в области $ scope, которая возвращает # строк текста. Теперь, на другой < тд> в той же строке, я хочу, чтобы добавить столько полей выбора, как у меня есть строки в текстовое поле, так что я пытался что-то вроде этого:AngularJS изменить td на основе других td

<table> 
    <tr ng-repeat="variable in variables"> 
    <td> 
     <label for="varValues">Choices:</label> 
     <textarea class="form-control" ng-model="variable.extras" id="varValues" cols="40" rows="5">{{variable.extras}}</textarea> 
    </td> 
    <td> 
     <table> 
     <tr element-repeat="numberOfRowsForChoiceVariable(variable)"> 
      <select class="form-control" ng-options=""> 
      <option value="">-- Default Skill --</option> 
      </select> 
     </tr> 
     </table> 
    </td> 

Я получаю только один < выберите> элемент в этой второй колонке. Как сделать, чтобы получить переоценку при изменении содержимого этого текстового поля?

+0

И как выглядит 'numberOfRowsForChoiceVariable()'? – isherwood

+0

он возвращает поля выбора номера, которые я хочу использовать, исходя из количества строк в переменной .extras model – Scott

+0

Это tr действительно должно быть ng-repeat, которое просто зацикливает правильное количество раз. Но проблема в том, как я могу переписать этот элемент td всякий раз, когда изменяется переменная .extras? – Scott

ответ

0

Вам нужно будет превратить ваше количество в массив. Что-то вроде этого нужно сделать:

$scope.getNumArray = function(num) { 
    return new Array(num); 
} 

Вы бы использовать это в numberOfRowsForChoiceVariable(variable) вернуть массив, а не целое число.

+0

Я изменил его из element-repeat = "" как 'ng-repeat =" x в numberOfRowsForChoiceVariable (переменной) трека по $ index "", и он возвращает массив, как вы показали. Я все еще просто получаю один элемент select, хотя на моей странице. – Scott

Смежные вопросы