<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();
}
如果表达式为true,我的问题是隐藏输入框。 如果我手动提供id,它会隐藏输入框,但在循环内部它不起作用。我相信这条线引起了这个问题:
<input type="text" placeholder="Enter valueg" class="form-control" name="cvalue" id="{{T.id}}" ng-model="T.cvalue" required/>
答案 0 :(得分:3)
您的功能有误。您始终使用字符串 k 调用该函数,而不是使用 k 变量。像这样更改你的代码:
$scope.hideinputbox = function (k) {
$("input#" + k).hide();
}
正如@katmanco所说,不要在AngularJS中使用jQuery。
但是为什么要隐藏你的元素并且还有 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"
是假的,它会被隐藏,所以我认为你不需要这个功能