2013-07-18 35 views

risposta

102

È possibile associare con una variabile nel controller:

<input type="text" ng-model="inputText" placeholder="{{somePlaceholder}}" /> 

Nel controllore:

$scope.somePlaceholder = 'abc'; 
+0

funziona, però, l'intera espressione è visibile agli utenti finali per un breve ritardo. Ecco perché ci sono ng-binding. Vedere https://docs.angularjs.org/api/ng/directive/ngBind –

+7

Inoltre, non funziona in IE, lanciando un errore. Presumibilmente stesso motivo per cui syle = "{{}}" è sconsigliato: https://docs.angularjs.org/guide/ie – velochy

+0

@ BùiThanhHải esattamente come usereste ng-bind in questa situazione? Hai un campione di codice? –

7

Dal AngularJS non ha manipolazioni direttiva del DOM come fa jQuery, un modo corretto per modificare gli attributi di un elemento utilizzerà la direttiva. Tramite la funzione di collegamento di una direttiva, si ha accesso a entrambi gli elementi e ai relativi attributi.

Concludendo l'intero input all'interno di una direttiva, è comunque possibile introdurre i metodi di ng-model tramite la proprietà del controller.

Questo metodo aiuterà a disaccoppiare la logica di ngmodel con il segnaposto dal controllore. Se non c'è alcuna logica tra di loro, puoi sicuramente andare come disse Wagner Francisco.

3

Come ha detto Wagner Francisco, (in JADE)

input(type="text", ng-model="someModel", placeholder="{{someScopeVariable}}")` 

E nel controller:

$scope.someScopeVariable = 'somevalue' 
+5

@cpburnz - Questo mi sembra un valido tentativo di rispondere alla domanda. Se non ti piace, dovresti votarlo a valle, non contrassegnarlo per la cancellazione. – ArtOfWarfare

+0

Questa è esattamente la stessa risposta di @Wagner Francisco –

Problemi correlati