隐藏并显示ng重复

时间:2015-11-27 15:05:09

标签: javascript jquery angularjs

    <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/>

1 个答案:

答案 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"是假的,它会被隐藏,所以我认为你不需要这个功能