将变量传递给自定义Angular指令

时间:2015-11-26 07:10:35

标签: angularjs

我有一个手风琴列表,我希望能够打开某些项目。 我已经创建了accordion-open指令,如果shouldBeOpen为true,它应该打开特定的项目

这是HTML元素(项目以循环方式打印)

<div class="m-list-item-head accordion-item" accordion-open="{{shouldBeOpen}}">

这是我的自定义指令

(function () {
  'use strict';

  angular.module('myApp').directive('accordionOpen', function () {
    return {
      restrict: 'A',
      link: function(scope, element) {
          if (open) {
            $(element).closest('.accordion-item').siblings().slideDown('fast');
            $(element).closest('.accordion-item').addClass('opened');
          }
      }
    }
  });
})();

我无法在指令中阅读accordion-open的内容。

1 个答案:

答案 0 :(得分:1)

不需要插值表达式。所以改为:

accordion-open="shouldBeOpen"

接下来,将attrs添加到您的链接功能:

link: function(scope, element, attrs)

并使用$eval获取链接函数中属性的值:

console.log(scope.$eval(attrs.accordionOpen))