这个angularjs服务有什么问题?

15 浏览
0 Comments

这个angularjs服务有什么问题?

请问我有两个问题,对于大型应用程序,Angularjs在CPU使用方面是一个好的解决方案吗?

我的Angular代码有什么问题?

var myapp = angular.module('myapp', []);
myapp.service('server', function (url){
    this.get = function ($http){
    return $http.get(url);
    };        
});
myapp.controller('myctrl' , function($scope,server){
    setInterval(function(){
        $scope.r= server.get('response.js');
    },1000);
});

0
0 Comments

这个问题的出现的原因是使用$http.get方法返回的是一个promise对象,需要使用回调函数来获取结果。此外,AngularJS仍然会对对象进行解包,只要不是数组就可以正常工作。

解决方法是使用回调函数来获取结果,示例如下:

server.get('response.js').success(function(data){
    $scope.r = data;
});

以上就是关于AngularJS中使用$http.get方法出现问题的原因和解决方法的内容。

0
0 Comments

这个问题的出现是因为在angularjs服务中,$http依赖被放置在了错误的位置。解决方法是将$http依赖放置在正确的位置。

具体来说,原始的代码如下:

myapp.service('server', function (url){
    this.get = function ($http){
        return $http.get(url);
    };        
});

正确的代码应该如下:

myapp.service('server', function ($http){
    this.get = function (url){
        return $http.get(url);
    };        
});

此外,你在使用$http.get()的返回值时,似乎像是在使用$resource.get()。然而,对于数组结果,这样的使用是行不通的。考虑使用$resource来代替。

具体来说,应该将以下代码:

return $http.get(url);

替换为:

return $resource(url).get();

0