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

标签 javascript angularjs client-server client-side

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

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

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

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

它会导致错误:

Uncaught SyntaxError: Unexpected token ) 

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

最佳答案

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

  1. 在 HTML 中分配数据:

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

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

关于javascript - 当数据不可用时,在 Angular 模块中设置值时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24476221/

相关文章:

angularjs - 多次使用指令时附加唯一 ID

ruby - 通过 Ruby 的 TCPServer 发送大文件的问题

javascript - 添加新路由时出现错误,路由配置中需要路径

json - 使用HTML和AngularJS获取和显示JSON数据字段

javascript - 在没有 Canvas 的情况下获取图像 uint8 数据

javascript - 响应类型为 text/plain 的 Angular 资源总是生成一个字符串数组

java - 使用自己的 Java 软件的自定义更新实现

c++ - 无法从 Windows 7 访问 Linux UDP 服务器

javascript - 使用什么代替 HTML 中的框架

javascript - 使用 React Bootstrap 渲染 Modal