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>