angularjs – angular-ui bootstrap accordion:我如何正确地观察is-open属性?

我正在尝试在特定的手风琴节开始时执行动作.我的用例几乎与此 question here相同,只是我使用的是静态定义的而不是ng-each.

不知何故,当打开状态发生变化时,我无法触发$watch,任何人都可以告诉我为什么这不起作用:

视图:

<accordion close-others="false">
   <accordion-group heading="group1" is-open="acc1open">
    content 1
   </accordion-group>    
   <accordion-group heading="group2" is-open="acc2open">
    content 2
   </accordion-group>  
  </accordion>

控制器:

$scope.acc1open = false;
  $scope.acc2open = true;

  $scope.$watch('acc1open',function(){
      console.log("watch acc1:" +$scope.acc1open);
  },true);

这是一个吸烟者:

http://plnkr.co/edit/Ycms81?p=preview

它在页面加载时一次打印“watch acc1:false”,但在打开手风琴组时则不打印.

解决方法

添加了< span>在AccordionDemoCtrl div中,并将is-open更改为绑定到$parent.acc1open

<accordion-group heading="group1" is-open="$parent.acc1open">

<span ng-click="acc1open = true">Click me to open group 1</span>

指令有自己的范围,变量是自己的.

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...