【问题标题】:angularjs $resource how to call multiple servicesangularjs $resource 如何调用多个服务
【发布时间】:2014-08-18 13:30:18
【问题描述】:

我昨天刚开始使用 angularjs,已经到达 this part of the tutorial,这里有一个使用 $resource 访问服务数据的示例。我在 ASP.Net MVC 中运行此示例,并且存储 json 文件的位置略有不同。包含电话列表的 json 文件和包含每个电话详细描述的一堆文件位于单独的文件夹中。 现在我看到的问题是这一行:

return $resource('phones/:phoneId.json', {}, {
      query: {method:'GET', params:{phoneId:'phones'}, isArray:true}

根据我的文件夹结构,可以使用我从上面修改的这一行访问包含电话列表的 json 文件

  return $resource('/MyAngularScripts/:phoneId.json.htm', {}, {
      query: { method: 'GET', params: { phoneId: 'jsonPhonedata' }, isArray: true }

我将扩展名更改为 .htm,因为我不想向 IIS express 添加另一个处理程序。该文件扩展名不是问题,因为我可以看到电话列表。现在,当我点击每部手机时,我应该能够从另一个文件夹的 json 文件中看到它的详细描述。 文件夹为:/Content/PhoneData/{all the various phone data json files here}

目前我找不到 404,因为详细信息文件位于 /Content/PhoneData/motorola-xoom-with-wi-fi.json.htm 中,但我将 URL 设为 /MyAngularScripts/motorola-xoom-with-wi-fi.json.htm

我现在如何修改我的服务以允许两个不同的 URL?

当前服务代码:

var phonecatServices = angular.module('phonecatServices', ['ngResource']);

phonecatServices.factory('Phone', ['$resource',
  function ($resource) {
      return $resource('/MyAngularScripts/:phoneId.json.htm', {}, {
          query: { method: 'GET', params: { phoneId: 'jsonPhonedata' }, isArray: true }
      });
  }]);

获取手机列表的当前控制器代码:$scope.phones = Phone.query();

用于获取所选手机详细信息的当前控制器代码:

 $scope.phone = Phone.get({ phoneId: $routeParams.phoneId }, function (phone) {
      $scope.mainImageUrl = phone.images[0];
  });

如何修改控制器代码以同时调用服务?

【问题讨论】:

  • 哪个是实际的url#1 /MyAngularScripts/motorola-xoom-with-wi-fi.json.htm#2 /Content/PhoneData/motorola-xoom-with-wi-fi.json.htm
  • 手机列表在 /MyAngularScripts/jsonPhonedata.json.htm 中,所选手机的详细信息在 /Content/PhoneData/motorola-xoom-with-wi-fi.json.htm 中

标签: javascript json angularjs asp.net-mvc-5 angularjs-service


【解决方案1】:

是的,您可以为每个操作指定 url

 return $resource(
           "/MyAngularScripts/:phoneId.json.htm",
           { Id: "@Id" },
           {
               'get':{url:'/Content/PhoneData/'+:phoneId+'json.html},
               'query' : {url:'/MyAngularScripts/jsonPhonedata.json.html'},

           }
      );

【讨论】:

    猜你喜欢
    • 2014-08-19
    • 1970-01-01
    • 2017-12-08
    • 2014-09-15
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    相关资源
    最近更新 更多