Scrivo un'applicazione molto complessa su Angularjs. Questo è già abbastanza grande da confondermi. Studio Angular in modo più approfondito e vedo che il mio codice è cattivo. Ho capire questo concetto:Direttiva AngularJS: modello di compilazione e ambito di controllo
module.directive('createControl', function($compile, $timeout){
scope: {
// scope bindings with '=' & '@'
},
template: '<div>Template string with binded {{ variables }}</div>',
link: function(scope, element, attrs){
// Function with logic. Should watch scope.
}
ho diversi problemi:
- Il mio modello è complicato, ho parte del modello che va nella funzione di collegamento dinamico
- ho bisogno di aggiungere template compilato per l'elemento, non per sostituire.
- Con concetto di cui sopra il mio modello vengono aggiunti senza alcuna interpolazione ...
Quindi il mio codice è alla ricerca di simile in vista semplificata:
module.directive('createControl', function($compile, $timeout){
scope: {
var1: '@var1',
var2: '@var2',
var3: '@var3'
},
template: '<div>{{ var1 }} {{ var3 }}</div>',
link: function(scope, element, attrs){
$('.someelement').on('event', function(){
var2 = 'SNIPPET'; // Need to watch it
});
var3 = '<span>{{ var2 }}</span>';
}
})
Le mie domande sono:
Come compilare il mio modello con variabili scope?
Come visualizzare le variabili di ambito?
Devo dividere la mia direttiva per due? Se dovessi, come farlo nel modo giusto?
se disposti ad utilizzare angolare 1.4, funzione per 'template' stato aggiunto che consente l'accesso agli attributi http://code.angularjs.org/1.1.4/ docs/guide/direttiva – charlietfl
@charlietfl, potresti inserire il tuo commento come risposta con un esempio di codice? – I159
Mi sbaglio o potresti evitare di usare jQuery mescolato con angolare? – Ismael