当数据不可用时,在 angular 模块中设置值时出错

Error when setting value in angular module when data is not available

提问人:Jakub 提问时间:6/29/2014 更新时间:6/30/2014 访问量:90

问:

我尝试将用户的值传递给 angular 代码。为了做到这一点,在服务器端,我用res.render传递用户的数据,在客户端,我设置了值:

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

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

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

并导致错误:

Uncaught SyntaxError: Unexpected token ) 

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

JavaScript AngularJS -服务器客户端

评论

0赞 Jon 6/29/2014
删除逗号 angular.module('UserModule', []).value('user');
0赞 lvarayut 6/29/2014
您可以先将 .req.user = {}

答:

1赞 Reto Aebersold 6/30/2014 #1

如第一条注释中所写,如果没有可用的数据,请确保它是一个空对象 ()。顺便说一句,我在 Google 演讲中看到了以下将数据注入 angular 应用程序的模式,我发现它非常有用:req.user{}

  1. 在 HTML 中分配数据:

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

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