数据不可用时在角度模块中设置值时出错

时间:2014-06-29 12:50:58

标签: javascript angularjs client-server client-side

我尝试将用户的值传递给角度代码。为了在服务器端执行此操作,我使用res.render传递用户的数据,在客户端我设置值:

<script>
   angular.module('UserModule', []).value('user', {req.user|js|s});
</script>

不幸的是,当用户不在时,它呈现为:

angular.module('UserModule', []).value('user', );

并导致错误:

Uncaught SyntaxError: Unexpected token ) 

知道在用户数据不存在时如何避免此错误?

1 个答案:

答案 0 :(得分:1)

如第一条评论中所述,如果没有可用的数据,请确保req.user是一个空对象({})。 BTW我看到以下模式将数据注入Google Talk中的角度应用程序,我发现它非常有用:

  1. 在HTML中分配您的数据:

    <script>
      window.user = {req.user|js|s};
    </script>
    
  2. 将配置阶段的数据作为常量提供:

    angular.module('UserModule', []).
      config(function(){
        $provide.constant('user', angular.copy(window.user));
      })