重新加载页面时AngularJS不需要的行为

时间:2014-03-23 00:29:11

标签: javascript angularjs express mean-stack

我正在开发一个带有MEAN堆栈的Angular应用程序,所以假设你有一条快速路由对数据库进行查询,结果将在响应中发送:

app.get('/api', function(req, res){
    Todo.find({}, "", function(err,todos){
        if (err)
            res.send(err);

        res.json(todos);
     }); 

});

在客户端:
控制器:

  ...
  Todo.get().success(function(data){  //i got the service with the $http call
      $scope.todos = data;
  });   

当我去localhost:8080 /#/ api时,我可以看到我的部分内容和我要求的数据。
我遇到的问题是,如果我省略了标签,我就看不到部分标签,我只看到JSON格式的响应数据。
我也尝试使用html5模式,但如果我重新加载我得到了相同的行为。

关于如何避免这种行为的任何想法?

1 个答案:

答案 0 :(得分:1)

#之后的任何内容都不会发送到服务器。因此,当您转到localhost:8080/#/api时,expressjs只会看到/的请求并返回AngularJS模板。 AngularJS然后使用/#/api路由浏览器页面,Todo.get()调用localhost:8080/api并且(我假设)调用/api/todos,从数据库返回数据。

这就是为什么在省略哈希和使用html5模式时只获取数据的原因。

我建议您将API调用更改为: /todos - 从db

返回数据

并将您的AngularJS路线更改为仅使用: {{1}} - 显示部分和请求的数据