8

Qui di una direttiva che ho creato:AngularJS: Direttiva - Passaggio di stringhe, senza dover utilizzare le virgolette

HTML:

<p-test something="'bla'"></p-test> 

JavaScript:

.directive('pTest', function() { 
    return { 
     scope: { 
      something: '=?' 
     }, 
     templateUrl: 'components/testTemplate.html', 
     controller: 'testController' 
    }; 
}); 

mi piacerebbe essere in grado di passare 'bla' come stringa senza '', nel modo seguente:

<p-test something="bla"></p-test> 

So che è possibile tramite il parametro attributes nel link, ma in questo caso è irrilevante (correggimi se sbaglio) mentre sto passando questi parametri direttamente all'oscilloscopio.

risposta

14

Mi piacerebbe essere in grado di passare 'bla' come una stringa senza il '', nel modo seguente:

Si sarebbe solo bisogno di testo vincolante (@) vincolante per quello, invece del binding a 2 vie.

.directive('pTest', function() { 
    return { 
     scope: { 
      something: '@?' //<-- Here 
     }, 
     templateUrl: 'components/testTemplate.html', 
     controller: 'testController' 
    }; 
}); 

e con il bind del testo se si desidera associare le proprietà dell'ambito, quindi utilizzare l'interpolazione. cioè ad esempio se bla è una variabile ambito in possesso di uno stringa di poi basta fare:

<p-test something="{{bla}}"></p-test> 

Plnkr

+0

imparato qualcosa di nuovo, grazie. –

+1

Ho dovuto aspettare 10 minuti per farlo, poi ho dimenticato. Ecco qua. –

+0

Grazie! so che posso dare valori agli elementi in-template! – Herman