Ich arbeite an diesem Projekt, wo ich diese icons integrieren möchte. Ich bin sehr neu in AngularJS, also wenn Sie bitte Ihre Antworten aufschlüsseln können, würde das sehr geschätzt werden.Klasse dynamisch in AngularJS ändern
Und ich arbeite mit OpenWeatherMap API, wo ich die entsprechenden Symbole basierend auf der aktuellen Wetterbeschreibung anzeigen möchte. Für zukünftige Schritte möchte ich eine switch-Anweisung für all die verschiedenen Optionen hinzufügen, aber ich kann es nicht einmal mit einer einzigen Option arbeiten lassen.
In Github-Repository heißt es: "Die Symbole werden angezeigt, indem Sie ein i-Element verwenden und die Basisklasse wi und dann die gewünschte Symbolklasse hinzufügen, z. B. tag-sonnig. Dies sieht dann wie <i class="wi wi-day-sunny"></i>
aus."
app.js
var classApp = angular.module ('weatherApp', []);
classApp.controller('weatherCtrl', function($scope, $http){
var vm = $scope;
};
$http.get("http://ip-api.com/json").success(function(data){
vm.lat= data.lat;
vm.lon=data.lon;
var apiKey= "key"; //removed key
var openWeatherURL = "http://api.openweathermap.org/data/2.5/weather?lat="+ vm.lat + "&lon="+vm.lon+ "&appid=" +apiKey;
$http.get(openWeatherURL).success(function(data){
**vm.weatherClass= "wi wi-owm-731"; //USING THIS LINE FOR NOW**
// Hour between sunset and sunrise being night time
var night = false;
**vm.weatherClass2 = $("#icon").attr("class", " wi wi-showers");**
//function that gets icon based on description
// if(data.weather[0].id >= 200 && data.weather[0].id < 300){
// $("#icon").attr("class", " wi wi-thunderstorm");
// }
// if(data.weather[0].id >= 300 && data.weather[0].id < 400){
// $("#icon").attr("class", " wi wi-sprinkle");
// }
// if(data.weather[0].id >= 500 && data.weather[0].id < 600){
// if(data.weather[0].id == 500 || data.weather[0].id >= 520){
// $("#icon").attr("class", "wi wi-rain")
// }
// $("#icon").attr("class", " wi wi-showers");
// }
// if(data.weather[0].id >= 600 && data.weather[0].id < 700){
// $("#icon").attr("class", " wi wi-snow");
// }
// if(data.weather[0].id >= 700 && data.weather[0].id < 800){
// $("#icon").attr("class", " wi wi-fog");
// }
// if(data.weather[0].id == 800){
// $("#icon").attr("class", " wi wi-day-sunny");
// }
// if(data.weather[0].id == 801){
// $("#icon").attr("class", " wi wi-day-sunny-overcast");
// }
// if(data.weather[0].id == 802){
// $("#icon").attr("class", " wi wi-day-cloudy");
// }
// if(data.weather[0].id == 803 || data.weather[0].id == 804){
// $("#icon").attr("class", " wi wi-cloudy");
// }
// if(data.weather[0].id == 900){
// $("#icon").attr("class", " wi wi-tornado");
// }
// if(data.weather[0].id == 901 || data.weather[0].id == 960 || data.weather[0].id == 961){
// $("#icon").attr("class", " wi wi-thunderstorm");
// }
// if(data.weather[0].id == 902 || data.weather[0].id == 962){
// $("#icon").attr("class", " wi wi-hurricane");
// }
// if(data.weather[0].id == 903){
// $("#icon").attr("class", " wi wi-snowflake-cold");
// }
// if(data.weather[0].id == 904){
// $("#icon").attr("class", " wi wi-hot");
// }
// if(data.weather[0].id == 905){
// $("#icon").attr("class", " wi wi-strong-wind");
// }
// if(data.weather[0].id == 906){
// $("#icon").attr("class", " wi wi-hail");
// }
// if(data.weather[0].id == 951){
// $("#icon").attr("class", "wi wi-day-sunny");
// }
// if(data.weather[0].id >= 952 && data.weather[0].id <= 956){
// $("#icon").attr("class", "wi wi-windy");
// }
// if(data.weather[0].id >= 957 && data.weather[0].id <= 959){
// $("#icon").attr("class", "wi wi-strong-wind");
// }
});
});
});
index.html
<body ng-app="weatherApp" ng-controller="weatherCtrl" class= "text-center info">
<i id="weatherClass2"></i>
<i class="wi wi-owm-731" style="font-size: 75px"></i>//works when it's explicitly stated
<i ng-class="weatherClass" style="font-size: 75px"></i>//trying to call this class
<i id="icon"></i> //trying to call weatherClass2 back in app.js
</body>
Ich habe verschiedene Möglichkeiten versucht, dynamisch auf das Symbol zu ändern, aber ich bin fest. Kann jemand bitte Eingaben machen? Vielen Dank!
https://docs.angularjs.org/api/ng/directive/ngClass – Will
Mögliche Duplikate von [Was ist der beste Weg, um eine Klasse bedingt anzuwenden?] (https://stackoverflow.com/questions/7792652/what-is-the-best-way-to-conditional-apply-a-klasse) –
@SaravananSachi Ich bin auf diese Frage auch beim googeln für 2 Stunden gestoßen, aber Wie gesagt, ich bin sehr neu bei angularjs. Ich habe nicht ganz verstanden, worüber die Antworten sprachen. Wenn Sie es für mich brechen können, würde das sehr geschätzt werden. Vielen Dank! – hiswendy