прятаться и показывать в повторе

0
    <tbody ng-repeat="T in sal ">
            <!--| filter:search:strict" >-->
             <tr id="tr{{T.id}}" ng-class-odd="'odd'" ng-class-even="'even'">

                 <td >

                  <div class="form-group" ng-repeat="K in datavalue">
    <div ng-show="(p.id == K.emp_id && T.id == K.component_id)" ng-init="hideinputbox(T.id)">
       {{K.amount}}
    </div>

</div> 
<input type="text" placeholder="Enter valueg"  class="form-control" name="cvalue" id="{{T.id}}"  ng-model="T.cvalue"  required/>

 </tr>
        </tbody>
      </table>
      </form>

внутренний контроллер,

$scope.hideinputbox = function (k) { 

      $("input#k").hide();
     }

Моя проблема заключается в том, чтобы скрыть поле ввода, если выражение истинно. Если я укажу идентификатор вручную, он скрывает поле ввода, но внутри цикла он не работает. Я считаю, что эта строка вызывает проблему:

<input type="text" placeholder="Enter valueg"  class="form-control" name="cvalue" id="{{T.id}}"  ng-model="T.cvalue"  required/>
  • 1
    Старайтесь не использовать Jquery вместе с Angular Js. Это плохая практика.

1 ответ

3

Ваша функция неверна. Вы всегда вызываете функцию со строкой k не с переменной k. Измените свой код следующим образом:

$scope.hideinputbox = function (k) { 

      $("input#" + k).hide();
     }

И как сказал @katmanco, не используйте jQuery с AngularJS.

Но почему вы скрываете свои элементы, а также ng-show?

<div ng-show="(p.id == K.emp_id && T.id == K.component_id)" ng-init="hideinputbox(T.id)">
       {{K.amount}}
    </div>

Если ваше ng-show="condition" ложно, оно будет скрыто, поэтому я думаю, что вам не нужна функция

  • 0
    Спасибо тебе большое...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню