【问题标题】:How to reload another controller from controller in Angularjs?如何从Angularjs中的控制器重新加载另一个控制器?
【发布时间】:2017-06-07 10:26:40
【问题描述】:

您好,我正在用 angularjs 开发网站。我正在使用 ui 路由。我想在用户登录后重新加载状态。我有 index.html 和 app.js。下面是我的 app.js

var app = angular.module('RoslpApp', ['pascalprecht.translate']);
app.config(function ($stateProvider, $urlRouterProvider, $translateProvider, $translatePartialLoaderProvider)
{
    $urlRouterProvider.otherwise('/HomePage');
    $stateProvider
   .state('Login', {
       url: '/Login',
       templateUrl: 'App/Registration/Login.html',
       controller: 'Login'
   });
});

app.controller('RoslpAppController', ['$scope', function ($scope) {
 var cookieloginid = $cookieStore.get('LoginID');
    if (cookieloginid != null) {
        //This will reoload
        var id = document.getElementById('ProfileDropdown');
        id.innerHTML = $scope.ProfileDropdown = ' <ul>' +
            '<li><a href="#/userProfile">User Profile</a></li>' +
            '<li>test1</li>' +
           ' <li onclick="logout(event)">logout</li>' +
        '</ul>';
        $scope.dp == false;
    }

以下是我的登录代码。

  $http.post(url, sub).then(function (response) {
                        setTimeout(function () { 
//Trigger or reload RoslpAppController controller
LoginSuccess(response); }, 1000);
                    }, function (error) {
                        setTimeout(function () { HideLoader(); }, 1000);
                        toastr.error($filter('translate')(error.data.msg));
                    });

登录成功后,我将获得登录 ID,并将其存储在 cookie 中。在 RoslpAppController 控制器中,我想在登录时检查 cookie 是否存在。我可以知道如何做到这一点吗?谢谢。

【问题讨论】:

标签: javascript angularjs


【解决方案1】:

在登录 POST 调用后,您必须转换到从服务器获得成功响应的状态。 要转换到状态使用 - $state.go("&lt;statename&gt;",{params},{reload : true})

如果您没有RoslpAppController 的任何状态,请创建一个。

在 OP 评论后编辑:

.state('Roslp', {
    url: '/Roslp',
    templateUrl: 'App/Registration/View.html',
    controller: 'RoslpAppController'
});

在 templateUrl 中给出登录后要加载的视图。 立即使用$state.go("Roslp",{params},{reload : true})

【讨论】:

  • 谢谢。我没有 RoslpAppController 的状态,因为它在 app.js 文件中。我可以知道如何为它创建状态吗?
  • 我创建了一个 plunker。 plnkr.co/edit/ZJJZLqJWRPOk4SKlvAa8?p=preview 登录成功后我想重新加载控制器 RoslpAppController
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-11
相关资源
最近更新 更多