Angularjs 从$resource服务到控制器的响应数据

Angularjs 从$resource服务到控制器的响应数据,angularjs,Angularjs,我正在编写一个与RESTfull服务器“对话”的应用程序,我遇到了一些问题。这是我的代码的精简版本:,还有一些问题: 1) 如何处理服务器返回的自定义JSON格式$“需要”干净数据的资源接缝。。。例如: // This works response = [{...}, {...}, {...}] // This doesn't work response = { status: 'OK', data: [{...}, {...}, {...}], message: 'Hello!' } 据我

我正在编写一个与RESTfull服务器“对话”的应用程序,我遇到了一些问题。这是我的代码的精简版本:,还有一些问题:

1) 如何处理服务器返回的自定义JSON格式$“需要”干净数据的资源接缝。。。例如:

// This works
response = [{...}, {...}, {...}]

// This doesn't work
response = { status: 'OK', data: [{...}, {...}, {...}], message: 'Hello!' }
据我所知,$resorce.query()是一个承诺,在transformResponse阶段生成,但我在这个对象的任何地方都找不到我的消息

我开始研究$http拦截器,我认为我可以处理来自那里服务器的响应,但我不知道如何将数据传递给服务(然后将数据作为资源数组)或控制器

2) 有没有比我现在使用的更好的动态加载模板的解决方案

angular.module( 'APPLICATION' )
    .config( ['$routeProvider', function ($routeProvider) {
      $routeProvider.when( '/:node', {
        template: '<section ng-controller="Controller" ng-include="template"></section>',
        controller: 'Controller'
      } );
    }] )
angular.module('APPLICATION')
.config(['$routeProvider',函数($routeProvider){
$routeProvider.when(“/:node”{
模板:“”,
控制器:“控制器”
} );
}] )
3) 对代码结构和组织有何建议或意见?我对AngularJS是个新手。我阅读并观看了很多教程,只是想确保我没有犯任何大错误(:

谢谢

  • 您不需要使用transformData修改值,只需在进行查询调用时直接访问即可

    MyResource.query({},函数(结果){
    $log.info(结果状态);
    $log.info(结果数据);
    $log.info(结果消息);
    });

    您还需要确保将$resource配置为预期结果是一个对象,而不是一个数组(默认值)。您可以这样做:

    $resource('/:id',{id:'@id'}{
    'query':{method'GET',isArray:false}
    });

  • 您可以使用将模板存储在javascript中,然后在routeProvider中使用templateUrl

  • 有一个伟大的谷歌文档跟踪当前最佳实践的角度应用程序布局超过


  • 我还强烈建议您查看以下项目,以便更好地了解如何将整个应用程序组合在一起

    1)当我返回对象格式的响应时,我收到一个错误“error:$resource:badcfg response与配置的参数不匹配”。我无法找到是什么原因造成的,我只是更改了服务器代码并返回了干净的数据以使其正常工作。感谢链接,我会查看一下。啊,您的问题是您必须定义资源,以便它需要一个对象而不是array。我会编辑我的答案是的,就是这样。。isArray:false解决了我的问题(:谢谢!