답변

3

그것의 모든 그것이 있어야로 작동 :

app.directive('myDir', function($timeout) { 
    return { 
     restrict: 'A', 
     scope: { 
      'propVar': '=' 
     }, 
     link: function(scope, elem) { 
      console.log(elem) 
      scope.linkVar = 'It works!' 
      console.log(scope); 
     }, 
    } 
}) 

은 내가 무슨 뜻인지 보여 plunker를 만들었습니다.

1) 'propVar' : '='을 정의하면 지시문 요소의 속성이 prop-var임을 의미합니다. 그렇지 않다. prop 특성을 사용하려면이 방법으로 격리 된 범위를 정의해야합니다 ('propVar' : '=prop').

2) 지시문의 하위 요소는 지시문 범위가 아닌 컨트롤러 범위에 바인딩됩니다.

app.directive('myDir', function() { 
    return { 
     restrict: 'A', 
     template: '<div><p>linkVar: {{ linkVar }}</p><p>propVar: {{ propVar }}</p><p>foo: {{ foo }}</p><button ng-click="foo=\'directive sucks\'">press me</button></div>', 
     scope: { 
      propVar: '=prop' 
     }, 
     link: function(scope, elem) { 
      console.log(elem) 
      scope.linkVar = 'It works!' 
      console.log(scope); 
     }, 
    } 
}) 

수정 된 PLUNKR 참조 : 당신은 자식 요소가 지침의 일부가 될하려는 경우 당신은 당신의 지시에 템플릿을 사용할 수 있습니다 http://plnkr.co/edit/MHXXkmPdtfAUqtre4Fbg?p=preview

+0

그래,하지만 문제는 내가 원하지 않는 것입니다 템플릿을 사용합니다. 내 div의 innerHTML에 물건에 대한 고립 된 범위를 원한다. 가능한가? – syabro

+2

흠. 그것은 작은 패치와 함께 작동합니다 : template : function (tElement, tAttrs) {return tElement [0] .innerHTML; } 답변을 주셔서 감사합니다;) – syabro

+0

@syabro 멋진 솔루션! :) – michael

관련 문제