Javascript AngularJS手风琴为开放式检查,ng重复

Javascript AngularJS手风琴为开放式检查,ng重复,javascript,angularjs,accordion,angular-ui-bootstrap,Javascript,Angularjs,Accordion,Angular Ui Bootstrap,我可以在不重复ng的情况下使其工作,但是当我打开元素列表时,它不工作。 1.我应该能够一次打开一个面板(有时它会打开所有面板) 2.当面板打开时,is Open(打开)的值应为true 3.如果用户在打开面板后单击面板内容列表,我应该能够获取值(类似于在面板上打开) html 感谢您的帮助和建议。为每一款手风琴提供独特的ng型号,这样它就会适合您 <uib-accordion-group ng-repeat="group in groups" ng-scroll="group in g

我可以在不重复ng的情况下使其工作,但是当我打开元素列表时,它不工作。
1.我应该能够一次打开一个面板(有时它会打开所有面板)
2.当面板打开时,is Open(打开)的值应为true
3.如果用户在打开面板后单击面板内容列表,我应该能够获取值(类似于在面板上打开)

html


感谢您的帮助和建议。

为每一款手风琴提供独特的ng型号,这样它就会适合您

<uib-accordion-group  ng-repeat="group in groups" ng-scroll="group in groups">
    <uib-accordion-heading ng-model="checkTitle$index">
        {{group.title}}
    </uib-accordion-heading>
    <a>{{group.content}}</a>
</uib-accordion-group>

{{group.title}}
{{group.content}
试试这个:

$scope.groups = [
    {
      title: "Dynamic Group Header - 1",
      content: "Content - 1",
      isOpen: false
    },
    {
      title: "Dynamic Group Header - 2",
      content: "Content - 2"
      isOpen: false
    }
与:

Panel Header Open: {{group.isOpen}} <br>



并从js中删除$scope.isOpen,这只是其他答案的一个微小变化。(我仍然不确定你的第三个要求,或者至少你的意思是什么。)

我们改变这一点:

...is-open="$parent.isOpen">
进入此状态(无需更改任何数据):

并将该功能添加到控制器,以设置“全局”打开状态。(要求2)


我知道现在回答这个问题已经很晚了,但我有一个非常简单的解决方案,可以帮助第四位访客

这是:

<div ng-if="$parent.isOpen" ng-cloak>

假设panel1是打开的,现在我正在单击panel2,所以panel1应该是关闭的?是的,而且
ng model=“checkTitle$index”
没有绑定任何值谢谢,我的意思是,如果我从第一个面板单击Content-1,我需要知道用户单击了该内容。基于此,我可以使用路由器加载页面。所以我希望手风琴能有类似的功能。
 $scope.groups = [
    {
      isOpen: false,
      title: "Dynamic Group Header - 1",
      content: "Content - 1"
    },
    {
      isOpen: false,
      title: "Dynamic Group Header - 2",
      content: "Content - 2"
    }
<uib-accordion-group  ng-repeat="group in groups" ng-scroll="group in groups" is-open="group.isOpen">
...is-open="$parent.isOpen">
...is-open="group.isOpen" ng-click="updateOpenStatus()">
$scope.updateOpenStatus = function(){
  $scope.isOpen = $scope.groups.some(function(item){
    return item.isOpen;
  });
}
<div ng-if="$parent.isOpen" ng-cloak>
<div ng-if="::$parent.isOpen" ng-cloak>