<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>
内部 Controller ,
$scope.hideinputbox = function (k) {
$("input#k").hide();
}
我的问题是如果表达式为真则隐藏输入框。 如果我手动给出 id,它会隐藏输入框,但在循环内它不起作用。我相信这一行导致了问题:
<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"
为假,它将被隐藏,所以我认为您不需要该功能
关于javascript - 在 ng 重复中隐藏和显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33960154/