<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/>
Ваша функция неверна. Вы всегда вызываете функцию со строкой 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"
ложно, оно будет скрыто, поэтому я думаю, что вам не нужна функция