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

将函数的返回值传递给指令-AngularJS,angularjs,directive,Angularjs,Directive,假设我有一个指令myDirective。该指令希望有一个标记名数组标记,例如['new','owner']。这个数组是动态生成的 <my-directive ng-repeat="that in a" tags="getTags(that.id)"></my-directive> angular.module('x').directive(... scope: { tags: '@' } }; 标记仍将是字符串。但它看起来像“['new','owner'

假设我有一个指令
myDirective
。该指令希望有一个标记名数组
标记
,例如
['new','owner']
。这个数组是动态生成的

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

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

标记
仍将是字符串。但它看起来像
“['new','owner']”
——但仍然是一个字符串。如何传递数组?

您需要解析变量:

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

我似乎无法通过这样做来覆盖
作用域。标记
变量?请尝试另一个变量。您好,我遇到了同样的问题,使用$eval解决了它,您能解释一下为什么我应该使用$eval,以及是否有更好的方法不使用$eval来实现同样的事情吗?
scope.tags = scope.$eval(scope.tags);