2015-01-12 11 views
9

Jeśli moja dyrektywa wykorzystuje „require” użyć innej dyrektywy, powiedzmy ngModel i wykorzystuje wyizolować zakres jak jestem w stanie użyć składni bindToController i nadal być w stanie uzyskać dostęp do zastrzyki (ngModelController) z kontroler?bindToController z wymagać w Kątowymi dyrektywy

Odpowiedz

21

Jak zrobiłbyś to bez bindToController? Wszystko, co robi bindToController: true, wiąże właściwość zakresu izolowania scope: { prop: "=" } z właściwością kontrolera: this.prop.

W obu przypadkach sposób przekazać „wymagane” kontroler byłby ten sam, który jest require swój własny sterownik i ustawić jego właściwość co chcesz, w tym innych kontrolerów:

app.directive("foo", function(){ 
    return { 
    require: ["foo", "bar"], 
    controller: function(){ 
     this.doSomethingWithBar = function(){ 
     this.bar.doSomething(); 
     }; 
    }, 
    controllerAs: "ctrl", 
    bindToController: true, 
    link: function(scope, element, attrs, ctrls){ 
     var foo = ctrls[0], bar = ctrls[1]; 
     foo.bar = bar; 
    } 
    } 
}); 
+0

To jest z pewnością poprawna odpowiedź i powinna zostać zaakceptowana. –