【问题标题】:Angularjs filter error from services data in the http urlAngularjs从http url中的服务数据过滤错误
【发布时间】:2014-04-30 03:48:47
【问题描述】:

我有一个调用服务的 django 方法,如下所示。这是控制器中的方法:

  $scope.showDegrees = function(degree){
            debugger
            $scope.DegreeCategory = degree.DegreeCategory;
            $scope.filterSub = degree.DegreeCategoryID;

            DegreesService.getDegrees(function(filterSub, data){
            $scope.degrees  = data;
            console.log(data);
      });

            $scope.display.academicdegrees = true;
          };

在我的服务中,我将我的工厂定义如下:

.factory('DegreesService',function($http) {
        return {
            getDegrees: function(degreecategoryid, callback) {
                //$http.get('/api/academicprogram/?format=json').success(callback);
                $http.get('/api/academicprogramlist2/'+degreecategoryid+'/').success(callback);
            }
        };
    })

当我在 chrome 中运行它时,url 传递错误。它给了我以下错误:

GET http://127.0.0.1:8000/api/academicprogramlist2/function%20(filterSub,%20data)%7B%20%20%20%20$scope.degrees%20%20=%20data;console.log(data);%20%20%7D/ 404 (NOT FOUND) 

我哪里错了?

【问题讨论】:

  • 看起来 degreecategoryid 是一个函数,它被用作变量。免责声明:我没有 AngularJS 经验。
  • 您只将 1 个参数传递给 getDegrees。第一个参数应该是 categoryId。 DegreesService.getDegrees(degree.DegreeCategoryID, function(filterSub, data) ...
  • 您的声明有效。但我没有得到json。相反,我得到一个值 200。

标签: javascript django angularjs


【解决方案1】:

你应该像这样打电话给DegreesService.getDegrees():

DegreesService.getDegrees(degree.DegreeCategoryID, function(response){...})

顺便说一句,$http.get() 返回一个承诺。 不要在你有承诺的情况下使用回调!

【讨论】:

  • 嗨,当我使用此命令时,它返回的值为 200 而不是 json我一个错误说:“DegreesService.getDegrees(degree.DegreeCategoryID, function(filterSub, data)”..
  • 将response 登录到浏览器控制台以更深入地了解它。转到 Angular 文档以查看 $http.get() promise 在成功时解决的问题。 docs.angularjs.org/api/ng/service/$http#get搜索HttpPromise
猜你喜欢
  • 2014-06-30
  • 2018-07-17
  • 2013-09-15
  • 1970-01-01
  • 2014-03-24
  • 2020-03-20
  • 2016-07-01
  • 2015-11-17
  • 1970-01-01
相关资源
最近更新 更多