Se la mia direttiva utilizza "require
" per usare una direttiva diversa, dicono ngModel
, e gli usi isolare la portata come sono io in grado di utilizzare la sintassi bindToController
ed essere ancora in grado di accedere alle iniettabili (ngModelController
) da il controller?bindToController con richiede direttiva angolare
9
A
risposta
21
Come si fa a fare questo senza bindToController
? Tutto ciò che fa bindToController: true
è che associa la proprietà dell'ambito di isolamento scope: { prop: "=" }
alla proprietà del controller: this.prop
.
In entrambi i casi, il modo per passare un controllore "necessaria" sarebbe lo stesso, che è quello di require
il proprio controller e impostare la proprietà o qualsiasi altra cosa, compresi gli altri controllori:
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;
}
}
});
questo è certamente la risposta corretta e dovrebbe essere accettata –