Sto cercando di usare la direttiva per creare e aggiungere diversi tag ad un <div>
come illustrato di seguito:Angularjs: come passare variabili di ambito a una direttiva?
module.directive('createControl', function(){
return function(scope, element, attrs){
console.log(attrs.createControl); // undefined
}
});
<div class="control-group" ng-repeat="(k, v) in selectedControls">
<div create-control="{{ v.type }}"></div>
</div>
In attrs ho questa costruzione:
$$element: b.fn.b.init[1]
$$observers: Object
$attr: Object
createControl: "date"
style: "margin-right: 15px"
__proto__: Object
Ma quando provo ad usare attrs.createControl
I get undefined
e non capisco perché. Domanda reale: come passare la variabile scope a una direttiva?
così sicuro di ottenere questo, come fa ora il div è la direttiva? – Jackie
Jackie, Angular cerca una direttiva (camelCase) che corrisponda all'attributo 'create-control' (minuscolo trattino). Spiegazioni – isherwood
, si spera che possano aiutare qualcun altro: 1.) ''@'' non funzionerà, per qualsiasi motivo. 2.) può anche essere applicato utilizzando più variabili, come ''. Si noti che 'value-two' diventa anche camelCase nella definizione dell'ambito della direttiva (' valueTwo'). 3.) non ci deve essere '{{}}' attorno alla variabile (ad esempio, NO '... =" {{v.type}} "') –
Blauhirn