2013-02-20 3 views
2

나는 내 내 응용 프로그램에 대한 보편적 인 슬라이더 지침을 작성하고,이 같은 예를 들어 HTML 코드에서 컨트롤 버튼을 것을 지정해야합니다지시문 AngularJS와에 개체 속성으로 속성하기

<div class="slide-wrapper" data-sample-values="{prevbtn: '.previous', nextbtn: '.next'}"></div> 

는 어떻게 얻을 수 있습니다 예를 들어 객체 속성과 같은 지시어에이 값이 있습니까?

아니면 resuable 지시어를 사용하는 다른 방법이 있습니까? 부모 범위에서이 요소를 어떻게 분리 할 수 ​​있습니까?
scope.$watch(function() { return scope.$eval(attrs.sampleValues); }, function (newValue) {...});

답변

6
myApp.directive('slideWrapper', function() { 
    return { 
     restrict: 'C', 
     scope: { getValues: '&sampleValues' }, // creates an isolate scope 
     link: function(scope, element, attrs) { 
     var values = scope.getValues(); // evaluates expression in context of parent scope 
     ... 
     } 
    } 
}) 
+0

각도 워드 프로세서 : –

+0

덕분에 모든 것이 제대로 작동합니다. – falloff

+0

어떻게 객체 표현식에 대해 = 바인딩을 사용할 수 없습니까? 다이제스트 오류가 계속 발생합니다. 그러나 이것은 훌륭합니다! – CMCDragonkai

0

는 다음과 같이 수행 지침 'scope` 속성을 {} (객체의 해시)로 설정하면 - 다음 새'분리 '범위가 생성됩니다. '격리'범위는 부모 범위에서 프로토 타입을 상속받지 않는다는 점에서 정상 범위와 다릅니다. 재사용 가능한 구성 요소를 만들 때 유용합니다. 실수로 상위 범위의 데이터를 읽거나 수정해서는 안됩니다. http://docs.angularjs.org/guide/directive
+0

죄송합니다. 특히 이미 선택한 답변으로 이것이 도움이되는 방식이 명확하지 않습니다. 이것이하는 일이나 달성하려는 일에 대해 자세히 설명해 주시겠습니까? – Scott

+3

이렇게하면 특성에서 값을 가져 오기 위해 새 격리 된 범위를 만들 필요가 없습니다. – steamrunner

관련 문제