2017-04-06 3 views
0

Ich habe kürzlich entdeckt und begann in JHipster zu entwickeln.Wie man eine Warnung auf JHipster automatisch schließt?

Eine der ersten Hürden, vor denen ich stehe, ist das automatische Schließen von Alarmen. Bisher habe ich gelernt, dass JHipster verwendet Bootstrap UI alerts, so versuche ich, die Warnungen in der sample project of JHipster gebündelt anzupassen, die in dem Haus angezeigt werden, wenn der Benutzer versucht, anzumelden (die man in grün):

enter image description here

HTML-Code für Benachrichtigungen war wie folgt:

 <div ng-switch="vm.isAuthenticated()"> 
      <div class="alert alert-success" ng-switch-when="true" data-translate="home.logged.message" translate-values="{username: '{{vm.account.login}}'}"> 
       You are logged in as user "{{vm.account.login}}". 
      </div> 
     </div> 

Was ich wie dies geändert:

  <div class="alert alert-success" ng-switch-when="true" data-translate="home.logged.message" translate-values="{username: '{{vm.account.login}}'}" close="closeAlert()" ng-if="show" dismiss-on-timeout="3000" > 
       You are logged in as user "{{vm.account.login}}". 
      </div> 

Javascri pt Datei home.controller.js sieht wie folgt aus:

(function() { 
'use strict'; 

angular 
    .module('pruebablogApp') 
    .controller('HomeController', HomeController); 

HomeController.$inject = ['$scope', 'Principal', 'LoginService', '$state', 'AlertService']; 

function HomeController ($scope, Principal, LoginService, $state, AlertService) { 
    var vm = this; 

    vm.account = null; 
    vm.isAuthenticated = null; 
    vm.login = LoginService.open; 
    vm.register = register; 
    $scope.$on('authenticationSuccess', function() { 

     getAccount(); 
    }); 

    getAccount(); 

    function getAccount() { 
     Principal.identity().then(function(account, $scope) { 
      vm.account = account; 
      vm.isAuthenticated = Principal.isAuthenticated; 

      if (vm.isAuthenticated){ 
       $scope.show = true; 
       } 

     }); 
    } 
    function register() { 
     $state.go('register'); 
    } 


    function closeAlert() { 
     $scope.show = false; 
    } 
} 
})(); 

Diese Methode ist nicht für mich arbeiten. Ich habe andere Ansätze versucht, wie this one oder this one (die für Tastenklicks funktionieren sollte).

Was mache ich falsch?

Antwort

1

JHipster verwendet AlertService als Dienst, um den Nachrichten-Typ erstellen, die Sie (z Info, Warnung, Gefahr etc.) und die Nachricht wird angezeigt mit dem Tag erstellen möchten. Sehen Sie sich die Entitäten in der Beispiel-App an, um das Tag jhi-alert in Aktion zu sehen. Sie schreiben einfach das Tag in die HTML-Site und Sie erstellen in Ihrem Controller mit AlertService die Nachricht, die Sie erstellen und anzeigen möchten.

@ Gaël Marziou Ihre Antwort war tiefer in das, was tatsächlich hinter der Szene passiert. Kann ich es sehen?

+0

Danke für Ihre Antwort. Ich habe gerade versucht dies: _Controller: _ 'AlertService.warning ("Hallo, ich bin eine Warnmeldung.");' _View: _ '' ich diese bekommen von den Elementen Inspector in Chrome Debuggen: '

' Noch keine Warnung wird angezeigt. Irgendetwas stimmt immer noch nicht. – wickedchild

+0

versuchen Sie einen Schluck sauberen Build. Wenn Sie die anderen Entitäten der Beispiel-App bearbeiten, z. Label oder BankAccount, erhalten Sie die Benachrichtigungen? Wenn Sie beispielsweise eine Entität erstellen oder bearbeiten, sollten Sie eine Info-Warnung erhalten. – duderoot

+0

Tatsächlich erhalte ich diese Warnungen. Versucht, das gesamte Projekt wieder aufzubauen, keine Verbesserung. Ich versuche gerade, AngularJS-Warnungen zu verwenden. Danke für die Hilfe! – wickedchild

Verwandte Themen