我试图让手风琴打开,如果用户在搜索栏中输入了一些东西,或者如果有人点击打开手风琴,我让他们分开工作,但我不能让两者同时工作。
如果我这样做
<accordion-group is-open="status.open" ng-repeat="cat in cats | filter: query">
手风琴只在用户单击时打开,如果我这样做
<accordion-group is-open="query.length > 0" ng-repeat="cat in cats | filter: query">
手风琴只在用户搜索某项内容后打开
有什么办法把这两者结合起来吗?我试过了,但是没有用
<accordion-group is-open="query.length > 0 || status.open" ng-repeat="cat in cats | filter: query">
下面是我在jsfiddle http://jsfiddle.net/goL848jn/3/中的代码
你需要在控制器中使用
$scope.$watch("query",function(newv){
if(newv != undefined){
if(newv.length > 0){
$scope.open = true;
$scope.$apply;
}else{
$scope.open = false;
$scope.$apply;
}
}
});
和手风琴
<accordion-group is-open="open" ng-repeat="cat in cats | filter: query">
<accordion-heading style="padding:0px;"> <i class="glyphicon" ng-class="{'glyphicon-minus': open, 'glyphicon-plus': !open}"></i> {{cat.title}}</accordion-heading>
工作小提琴http://jsfiddle.net/0ynqomrt/
你的jsfiddle手风琴似乎不适合我…
我认为您的关键是将is-open绑定到控制器作用域中的变量。手风琴组创建它自己的作用域。所以先试试这样:
<accordion-group heading="CATS" is-open="$parent.openMe">
在这个柱塞中查看更多我的意思。我不确定这是不是你想要的,但希望它能让你走上正确的道路?
http://plnkr.co/edit/uwxza87gEsCxopecAlCd?p =预览