Angular控制器在没有页面刷新的情况下不更新视图

时间:2015-08-12 09:55:47

标签: angularjs scope window apply digest

我的登录例程使用护照js,express和angular有问题。虽然登录工作顺利但我想使用window对象存储当前登录的用户以进行身份​​验证。

使用护照验证用户名和密码后我使用的是successRedirect,触发index.render

// Set up the 'signin' routes 
app.route('/signin')
   .post(passport.authenticate('local', {
        successRedirect: '/',
        failureRedirect: '/signin',
        failureFlash: true
   }));

exports.render = function(req, res) {
    // Use the 'response' object to render the 'index' view with a 'title' and a stringified 'user' properties
    console.log('Window Object:',req.user);
    res.render('index', {
        title: 'Test',
        user: JSON.stringify(req.user)
    });
};

登录应用程序后, window.user 对象从null变为以下(index.ejs)。

<!-- Render AngularJS views  -->
    <header data-ng-include="'header.client.view.html'"></header>
    <section data-ui-view></section>
    <div id="contactform" data-ng-include="'contactform.client.view.html'"></div>
    <footer data-ng-include="'footer.client.view.html'"></footer>

    <!-- Render the user object -->
    <script type="text/javascript">
            window.user = {"_id":"55cb06e523d7d6680d14c215","provider":"local","firstName":"Karl","lastName":"Karl","email":"karl.karl@test.com","__v":0,"created":"2015-08-12T08:42:13.807Z","active":true,"fullName":"Karl Karl","id":"55cb06e523d7d6680d14c215"};
    </script>

现在我在角度控制器中检索 window.user 对象时非常失败,因为只要我没有完成页面刷新,它就会被视为null。

<!-- Render the user object -->
<script type="text/javascript">
        window.user = null;
</script>

现在的问题是,如何检索窗口对象,因为我想相应地更新我的角度视图,在标题中显示用户已登录?

1 个答案:

答案 0 :(得分:0)

我认为您打算使用Angular服务来存储要在控制器之间共享的变量。对不起,我想我试图推动你使用Window对象存储状态的首选解决方案。

来自公共服务模块的一些示例代码

//var com_serv = angular.module('common.services')
com_serv.service('sharedProperties', function () {
    var property = 'Not yet set';

    return {
        getProperty: function () {
            return property;
        },
        setProperty: function (value) {
            property = value;
        }
    };
});

相关的SO问题

how-can-i-pass-variables-between-controllers

how-to-pass-dynamic-data-from-one-module-controller-to-another-module-controller

相关问题