将函数的返回值传递给指令 - AngularJS

时间:2014-06-12 12:12:59

标签: angularjs directive

假设我有一个指令myDirective。该指令希望有一组标记名tags,例如['new', 'owner']。这个数组就像生成一样生成;

<my-directive ng-repeat="that in a" tags="getTags(that.id)"></my-directive>

angular.module('x').directive(...
  scope: {
   tags: '@'
  }
};

其中getTags是一个返回标签数组的函数。

像这样,tags将成为字符串"getTags(that.id)"。如果我把它放在像;

这样的表达式中
<my-directive ng-repeat="that in a" tags="{{getTags(that.id)}}"></my-directive>

tags仍然是一个字符串。但它看起来像"['new', 'owner']" - 但仍然是一个字符串。我如何传递数组?

1 个答案:

答案 0 :(得分:3)

您需要解析变量:

scope.tags = scope.$eval(scope.tags);