Je travaille sur l'application angularjs. J'ai un bouton dans ma page d'accueil, lorsque l'utilisateur clique sur le bouton, il doit frapper le contrôleur et à partir du backend obtenir les données et afficher sur le navigateur. Tout fonctionne bien en chrome et firefox mais ne fonctionne pas dans IE. Essayé de trouver une solution de rechange à résoudre, mais sans succès, toute suggestion serait utile.alternative au bouton ng-click dans angularjs
html: Connexion
spring controller:
@RequestMapping(value = "/getData", method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody
List<String> getMyData(HttpServletRequest request) throws Exception {
System.out.println("In MyDataController"); //printed only when navigated through chrome
//logic here
//return statement
}
PS: Lorsque le même code ci-dessus est exécuté dans IE11, il ne frappe pas le contrôleur de printemps, mais fonctionne très bien est en chrome et safari. Quel pourrait être l'autre moyen d'obtenir la même fonctionnalité que le bouton dans angularjs et qui fonctionne à la fois dans IE et chrome.
--EDITED-- contrôleur js:
myApp.controller('myController', function ($scope, MyService) {
$scope.btnAdminDetails= function() {
alert("In btnAdminDetails, js controller"); //this is called both in IE11 and chrome
console.log("In controller");
MyService.retrieveData().then(
function (response) {
alert("response back from spring controller");
if(window.navigator.msSaveOrOpenBlob){
$scope.IEBrowser = true;
$scope.myData = response;
} else {
$scope.IEBrowser = false;
$scope.myData = response;
}
},
function (errResponse) {
$rootScope.showError("Internal error" + errResponse);
});
}
$scope.btnAdminDetails();
});
//service code
_myService.retrieveData= function(){
alert("service call");//called when tested from both IE and chrome, but issue is from IE the java controller is not getting called from here..
console.log("In Angular Service above $q.defer ");
var deferred = $q.defer();
console.log("In Angular Service below $q.defer");
var randomh=Math.random();
var repUrl = myAppURL+'/myControllerr/getData.form?x='+randomh+"";
$http.get(repUrl).then(
function (response) {
deferred.resolve(response.data);
},
function(errResponse){
deferred.reject(errResponse);
}
);
return deferred.promise;
}
I have added Math.random to the request URL in the service call.
En IE11, lorsque je clique sur le bouton que l'alerte btnAdminDetail, js controller
dans le contrôleur est affiché, les autres déclarations d'alerte ou les déclarations sont CONSOLE.LOG pas imprimé.
pouvez-vous me dire que c'est sur le clic du bouton, la fonction btnAdminDetails est en cours d'exécution? ou pas? –
oui il est en cours d'exécution et en appelant le contrôleur angulaire aussi, question est qu'il ne frappe pas le contrôleur de ressort. – user7833845
Veuillez également nous indiquer votre code MyService. –