Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 单击隐藏Angular JS-jQuery nextUntil()功能_Angularjs - Fatal编程技术网

Angularjs 单击隐藏Angular JS-jQuery nextUntil()功能

Angularjs 单击隐藏Angular JS-jQuery nextUntil()功能,angularjs,Angularjs,我有一个黄色行的表,用作.separtor <tr class="separator"> <td></td> <td></td> </tr> <tr ng-repeat="item in items"> <td>{{item.blah}}</td> <td>{{item.blah2}}</td> </tr&

我有一个黄色行的表,用作
.separtor

<tr class="separator">
    <td></td>
    <td></td>         
</tr>

<tr ng-repeat="item in items">
    <td>{{item.blah}}</td>
    <td>{{item.blah2}}</td> 
</tr>

<tr class="separator">
    <td></td>
    <td></td>
</tr>

<tr ng-repeat="item in itemsTwo">
    <td>{{item.blah3}}</td>
    <td>{{item.blah4}}</td>
</tr>

我对AngularJS非常陌生,试图达到尽可能多地使用AngularJS来完成任务的程度。。但我唯一能想到的是初始化一个布尔数组,然后根据数组的索引将
ng hide
指令分配给每个适用的
tr
。然后使用ng click将数组中的适当索引设置为true/false。。但是在这种情况下,使用jQuery执行此任务可能会更好

您认为什么是最好的继续进行的方式?

有没有更好的方法通过角度测量来实现这一点<代码>jqlite等..


最好使用jQuery吗?

您认为最好的方法是什么

-创建嵌套的ng repeat,为show/hide inline或在js中初始化变量(在这里使用ng init并不完全是最佳做法,但它会起作用;您真正想要的是在生成列表时在js中初始化变量以控制列表的可见性)


{{item.blah3}}
{{item.blah4}
最好使用jQuery吗?
-除非你真的需要它。。。例如对于AngularJS可能没有的插件,否则,有一种方法可以通过AngularJS实现这一点

有没有更好的方法来实现这一点使用角度?jqlite等?

-是的,也不是,因为您已经习惯于jQuery和做事情,所以jQuery方式切换到角度方式对您来说可能有点困难,但尽管值得,但如果您的最后期限很紧,可能不会更好。。。否则,请使用AngularJS。注意:jqLite的使用最好留给指令,而不是称之为控制器,因为jqLite可以控制DOM操作,DOM操作应该留给指令。上述代码可以放在一个循环一组数据的指令中。

如需更多帮助,请将plunker或JSFIDLE放在一起。从代码外观看,您正在侦听主体的输入,然后让事件冒泡,以确定要显示/隐藏的部分,您也可以将单击事件附加到主体上,但是创建一个循环并让ng repeat为您创建每个部分上的事件更容易。太好了,谢谢您的回答。我要用这个!
$('body').on('click','.separator',function(){
    $(this).nextUntil('.separator:not(.omit)').toggle();  //there are cases where I want to omit some separators based on class.
});
<tbody ng-repeat="sublist in masterList">
    <tr class="separator" ng-init="sublist.showMe = true" ng-click="sublist.showMe =! sublist.showMe">
        <td></td>
        <td></td>
    </tr>

    <tr ng-repeat="item in sublist" ng-show="sublist.showMe">
        <td>{{item.blah3}}</td>
        <td>{{item.blah4}}</td>
    </tr>
</tbody>