2015-06-30 3 views
0

Давайте представим, что у нас есть одна дочерняя директива <child/>, которая принимает ng-model и ng-change и выполняет с ними некоторые действия. И у нас есть два вида оберток <w1/> и <w2/>, которые содержат <child/>.ngМодель прошла через оболочку к дочерней директиве

  • W1 должно пройти нг-модель через непосредственно <child/>
  • W2 должен пройти некоторый внутренний объект в качестве модели для <child/>

в первом случае я бы использовать require: '^ngModel' во втором: require: 'ngModel' но мне нужно они работают одновременно

ответ

0

поэтому модель - простой объект, который можно легко передать.

<wrapper ng-model="foo"></wrapper>

Wrapper:

module 
.directive('wrapper', function() { 
    return { 
     restrict: 'E', 
     template: "<child ng-model='ngModel'></child>", 
     scope: { 
      ngModel:'=' 
     }, 
     link: function ($scope) { 
     } 
    }; 
}); 

Ребенок:

module 
    .directive('child', function() { 
     return { 
      restrict: 'E', 
      require: 'ngModel', 
      template: "<div>some wierd stuff</div>", 
      scope: { 
      }, 
      link: function ($scope, iElem, iAttr, ngModel) { 
       var a = ngModel.$viewValue; 
      } 
     }; 
    }); 
Смежные вопросы