将字符串传递给app.js中的Angular表达式

时间:2018-01-02 17:33:53

标签: javascript jquery angularjs

我有这个功能,当满足某些条件时会重定向到登录页面。这部分工作正常,但我想在登录页面上显示一条消息,说明它们被重定向的原因。

目前我在app.js

中有这个功能
app.run(function ($rootScope, $window) {
    $rootScope.$on('$routeChangeStart', function (event) {
        //stuff to evaluate
        if (stuff = true) {
            $rootScope.$evalAsync(function () {
                $scope.message = "test";
                $window.location.assign('#/login');
            });
        }
    });
});

我还有一个页面,login.html,有一个div,我想要我的消息。

        <div ng-hide="message == ''" class="alert alert-danger">
            {{message}}
        </div>

我尝试在函数中添加$ scope,并访问$ scope.message,但我不认为我的范围正确。当我包含它时,该函数永远不会命中,但它没有。有什么办法可以访问此login.html页面的范围吗?登录页面确实有它自己的控制器,但我需要能够从这个app.js页面重定向到那里。

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

一旦导航到新的状态登录,而不是使用$ scope,

$ scope会重新实例化(重新创建),您应该使用 service/root$scope/localStorage 将值传递给下一页。

使用$ rootScope将其更改为,

 $rootScope.$evalAsync(function () {
         $rootScope.message = "test";
         $window.location.assign('#/login');
 });