使用angular和mock开发所有json请求/响应

时间:2013-08-21 17:36:25

标签: json angularjs

在开发将执行实际json请求/响应的后端服务之前,我是否可以使用angularjs开发网站的整个前端?即持久存储到数据库等的crud操作。

有人可以提供一些有关如何执行此操作的见解吗?

3 个答案:

答案 0 :(得分:1)

您可以通过使用localStorage服务并在REST API可用时将它们交换为实际服务来实现此目的。

以下是如何实现localStorage服务的示例:

app.factory('user', function($rootScope) {

  var userJson = window.localStorage['appUser'];

  var user = userJson ? JSON.parse(userJson) : {
    username: undefined,
    password: undefined
  };

  $rootScope.$watch(function() { return user; }, function() {
    window.localStorage['appUser'] = JSON.stringify(user);
  }, true);

  return user;
});

有关此方法的更多信息,请查看IgorMinár的FoodMe app

答案 1 :(得分:1)

我正在开展一个项目,目前我必须完成同样的事情。有几个选项,包括硬编码JSON或从localstorage引用它。我决定通过对静态json文件进行$ http.get()调用来采取另一种方法,所以我需要做的就是在完成后用我的REST服务调用替换硬编码的json文件。

return $http.get('example.json').then(function(result) {
            /* ... Stuff on success ... */
        },
        function(result){
            /* ... Stuff on failure ... */
        }

答案 2 :(得分:1)

看看http://docs.angularjs.org/api/ngMockE2E.$httpBackend。它是一个专门为使用angularJS进行端到端测试而设计的模拟框架,但它也可用于完全模拟REST API。

使用此框架的优点是,在切换到真正的后端时,您的前端代码中只需要很少的更改。您只需切换ng-app标签并删除对模拟脚本的引用,就是这样。当然,您可以在端到端测试中重用相同的模拟API。缺点(与使用本地存储相反)是刷新页面时所有已修改的数据都将消失(重新加载angularJS应用程序),但如果您正在开发一个真正的单页Web应用程序,那么这不是一个问题。无论如何都要翻页。