Manipulacja stylem w wierszu za pomocą angular nie działa w IE
Chciałem ustawić pozycję div na podstawie wartości zwracanej funkcji w kontrolerze kątowym
Poniższy kod działa dobrze w FireFox i Chrome, ale w przeglądarce internetowej
{{position ($ index)}}%jest interpretowany jako literał ciąg znaków i dlatego nie ma żadnego wpływu
<div ng-repeat="item in items" style="left:{{position($index)}}%">
Oto przykład tego problemu:
var app = angular.module('app', []);app.controller('controller', function($scope) { $scope.items=[1,2,3,4,5,6,7,8,9,10]; $scope.position=function(i){
var percent =[5,10,15,20,25,30,35,40,45,50,55,60,65,70];
return percent[i+1];
}
});
I tu
Fiddle
http://jsfiddle.net/mx4w6uxz/
do demonstracji
Czy ktoś ma jakieś sugestie, jak naprawić sytuację?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
3 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
ng-style
https://docs.angularjs.org/api ... Style
zamiast stylu, w przeciwnym razie niektóre przeglądarki, takie jak , usuwają nieprawidłowe wartości atrybutów stylu (posiadanie itp. czyni je nieprawidłowymi) nawet zanim angular będzie w stanie renderuj to. Używając angular oceni wyrażenie i doda do niego wbudowane atrybuty stylu.
Ponieważ i tak obliczasz pozycję, możesz również dodać z i przesłać go. Pamiętaj również, że wywołanie funkcji w ng-repeat wywoła tę funkcję w każdym cyklu skrótu, więc możesz uważać, aby nie wykonywać zbyt intensywnych operacji wewnątrz metody.
i wróć
return percent[i+1] + "%";
Demonstracja
http://jsfiddle.net/ct7y2dv4/
Anonimowy użytkownik
Potwierdzenie od:
użyj
,
i będzie działał dobrze na IE (i oczywiście inni są mądrzejsi) :)
Sprawdź mój
jsFiddle
http://jsfiddle.net/0s4twkhv/2/... testowane z Angular JS 1.4.8
tutaj pokazałem użycie , i
W HTML
IP
Anonimowy użytkownik
Potwierdzenie od:
HTML
: