我最近发现并开始在JHipster中进行开发。

我面临的第一个障碍是自动关闭警报。到目前为止,我已经了解到JHipster使用Bootstrap UI alerts,因此我正在尝试调整sample project of JHipster中捆绑的警报,当用户尝试登录时,警报显示在主屏幕中(绿色的):

javascript - 如何在JHipster上自动关闭警报?-LMLPHP

警报的HTML代码如下:

        <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>


我这样修改的:

            <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>


Javascript文件home.controller.js如下所示:

(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;
    }
}
})();


此方法不适用于我。我尝试了其他方法,例如this onethis one(应该适用于按钮单击)。

我究竟做错了什么?

最佳答案

JHipster使用AlertService作为服务,以创建要创建的消息类型(例如,信息,警告,危险等),并且消息与标签一起显示。查看示例应用程序中的实体,以查看标记jhi-alert的实际作用。您只需在html站点中编写标签,然后在您的控制器中使用AlertService创建要创建和显示的消息。

@GaëlMarziou,您的回答更深入地了解了幕后实际发生的事情。我可以看吗?

关于javascript - 如何在JHipster上自动关闭警报?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43259047/

10-13 01:03