2014-06-12 3 views
1

지시문이 myDirective이라고 가정 해 보겠습니다. 이 지시자는 ['new', 'owner']과 같은 태그 이름 배열 tags을 갖고 싶어합니다. 이 배열은 파리에서 생성됩니다.함수의 반환 값을 지시문에 전달 - AngularJS

<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']"처럼 보일 것입니다. 그러나 여전히 문자열입니다. 어떻게 배열을 전달합니까?

답변

3
당신은 변수 구문 분석 할 필요가

:이 같은 수행하여`scope.tags` 변수를 무시할 수없는 것

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

를? – Unidan

+0

다른 변수를 입력하십시오. – Wawy

+0

안녕하세요 나는 같은 문제가 있었고 $ eval을 사용하여 해결했습니다. $ eval을 사용해야하는 이유와 $ eval을 사용하지 않고 똑같은 것을 달성하는 더 좋은 방법이 있다면 나에게 설명해 주시겠습니까? –

관련 문제