2012-12-05 13 views
35

utilizzando un'espressione come questo sul attributo style funziona su Chrome, ma non funziona su IE8AngularJS espressione non lavorando all'interno attributo di stile su IE8

style="width:{{progress}}%" 

http://jsfiddle.net/5VDMD/12/ (per testarlo si prega di digitare un numero nella casella di testo

Qualsiasi soluzione per questo problema?

+2

Si consiglia di provare a utilizzare 'ng-style' invece. – Tosh

+2

La soluzione era ng-style = "{width: propertyInScope + '%'}" grazie a David https://groups.google.com/forum/?fromgroups=#!topic/angular/Bb6087Gv284 – user1877925

+0

Ecco il jsfiddle con la soluzione funziona bene su IE8 http://jsfiddle.net/5VDMD/15/ – user1877925

risposta

55

Prova

ng-style="{ width: progress + '%' }" 
+0

Grazie! Questa è la migliore risposta. – Tom

+3

Ho bisogno di virgolette singole intorno alla proprietà css per Angular 1.5, in questo modo: 'ng-style =" {'width': progress + '%'} "' – NathanQ

13

ho fatta funziona in questo modo:

nel controller:

$scope.getStyle = function(progress){ 
    return { 
     width: progress + "%" 
    } 
} 

nel codice HTML:

<div class="progbar" ng-style="getStyle(progress)"></div> 
4

Per qualche motivo in IE Ho dovuto usare

ng-attr-style="{{METHOD_TO_RETURN_SOME_STYLE()}}" 

Anche se il mio era in una direttiva sotto una ripetizione ng.

0

se l'uso a nessuno px anziché%, è necessario utilizzare questo

ng-style="{ width: progress + \'px\' }" 
+0

Penso che sarebbe più utile per theOP e altri utenti, quando aggiungi qualche spiegazione per la tua intenzione – reporter

25

ho dovuto usare ng-attr-style (anche se non ho bisogno di usare una funzione).

<div ng-attr-style="width: {{value}}%"></div> 

Ecco un github discussion su questo problema.