是否可以在工厂中使用示波器然后在多个控制器上使用它?
我不是真的要在每个控制器中编写相同的代码,而要对其进行操作会很痛苦^^

这是我目前的想法。

.factory('FactoryName', function($scope, $routeParams, $http) {
    return {
        search : function(str, http) {
            var url = str+'.json';
            return $http.get(url).success(http).error(function() {
                alert('Unable to get back the data');
            });
        }
        httpSuccessPaper : function(response) {
            $scope.papers = response;
        }


这样,我只有一次此代码,并且我所有的控制器都能够使用“ reference”的json。在某些视图中,我还可以编写类似ng-repeat =“ p in papers”的内容。

这是我在控制器中调用它的方式:

.controller('CtrlName', ['$scope', '$routeParams', '$http', 'FactoryName'
    function($scope, $routeParams, $http, FactoryName) {

        FactoryName.search("Paper",FactoryName.httpSuccessPaper).then(function(){
            $scope.paper = getByIdPa($scope.papers,$routeParams.id);
        })


对我来说似乎有点奇怪,而且我几乎可以肯定我正在尝试一些不可能的事情。
我希望您的意见。
谢谢 !

最佳答案

您可以这样做:

angular.module('apiServices', ['ngResource'])
.factory('ExampleService', ['$http', 'serviceUrl', function ($http, serviceUrl) {
    return{
        getInteractions: function () {
            return $http({method: 'GET', url: serviceUrl + 'ctest', headers: {'Cache-Control': 'no-cache, no-store', 'Pragma': 'no-cache', 'Expires': '0'}});
        },
        getRoots: function () {
            return $http({method: 'GET', url: serviceUrl + 'ntest', headers: {'Cache-Control': 'no-cache, no-store', 'Pragma': 'no-cache', 'Expires': '0'}});
        },
        getLogging: function (params) {
            return $http.post(serviceUrl + 'atest', params);
        },
        getMessage: function (params) {
            return $http({method: 'GET', url: serviceUrl + 'btest', params: params, headers: {'Cache-Control': 'no-cache, no-store', 'Pragma': 'no-cache', 'Expires': '0'}});
        }
    };
}]);

关于javascript - AngularJS $ scope在工厂,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22992396/

10-13 01:50