使用AngularJS从accordion-group打开$ http.get加载

时间:2013-10-08 14:57:06

标签: javascript angularjs angular-ui

我正在使用Angular v1.2.0rc1和Angular-UI Bootstrap。

[编辑] 我想要的是使用accordeon时按需加载缓存。

我正在使用here的手风琴乐队。有一些后端requeriments:当手风琴打开(点击)时,我想加载手风琴内部的内容。

然后,我希望缓存该响应,以便您可以根据需要打开/关闭,而不会使服务器过载。

我尝试使用ng-click标题,但它通过AngularUI Bootstrap获得覆盖。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:7)

您可以使用accordion标题标记来捕获ng-click

<div accordion ng-controller="AccordionCtrl">
  <div accordion-group ng-repeat="group in groups">
    <div accordion-heading >
      <div ng-click='loadGroup(group)'>
        {{group.title}}        
      </div>
    </div>
    {{group.loaded}}
  </div>
</div>  

使用此控制器

var AccordionMenuCtrl = ['$scope', '$http' function ($scope, $http) {
  $scope.groups = [
    {
      url: 'http://whatever',
      title: 'whatever'
    },
    {
      url: 'http://whatever_else',
      title: 'whatever else'
    }
  ]

  $scope.loadGroup = function (group) {
    $http.get(group.url).success(function (data) {
      group.loaded = data
    });
  }
}];