2016-06-07 46 views
0

我已经创建了服务,但我没有得到如何在我的控制器中使用此服务。如何在angular.js控制器中使用服务?

(function(){ 
    'use.strict'; 

    angular 
    .module('app.core') 
    .factory('shareBtwnCtrlr', shareBtwnCtrlrService); 

    /** @ngInject */ 
    function shareBtwnCtrlrService() { 
     shareBtwnCtrlr = function($scope, $rootScope){ 
      $scope.value = $rootScope.test; 
     } 
     return shareBtwnCtrlr; 
    } 
})(); 

在上面的代码$ rootScope.test从一个控制器来了,现在我已经在使用此服务的另一个控制器使用这个$ scope.value。另一个控制器如下所示

(function(){ 
    'use strict'; 

    angular.module('app.product') 
     .controller('ProductController', ProductController); 

    /** @ngInject */ 
    //ProductController.$inject = ['$http', '$location', '$scope']; 
    function ProductController($http, $location, $rootScope, $scope, $localStorage, $interval, $timeout,$mdDialog, $document, shareBtwnCtrlr){ 
     var vm = this; 
    } 
})(); 
+0

为什么在其他的控制器不使用'$ rootScope.test'? –

+0

您使用的是严格模式,并且您没有使用'var'声明'shareBtwnCtrlr'。这可能会引发错误 –

+0

@SaneeshB在这里我使用两个控制器,当时第一个控制器执行第一个$ scope.value显示结果为第二个控制器执行结果存储后未定义,但我无法在第一个控制器中得到该结果。 – Kevin

回答

0

您有两个模块,所以依赖注入器无法将您的服务从app.core注入到app.product。 尝试创建新的模块

var app = angular.module('app', ['app.core','app.product']); 

然后

angular.module('app').factory('shareBtwnCtrlr', shareBtwnCtrlrService); 
+0

但上次我使用fileUploader服务。就像我从app.core注入到app.message模块一样,它工作的很好。 – Kevin

+0

它是一个服务,在你的模块中声明?或者只是将其他模块(第三方库)注入到模块中? –

+0

ha它是一项服务 – Kevin

0

只有同一模块中的服务可以注入到控制器和模块的指令。

应将新模块添加到应用程序以扩展其功能。

angular.module('app.core') 
.factory('shareBtwnCtrlrService', function() { 
    var shareBtwnCtrlrService = this; 

    shareBtwnCtrlrService.value = function(){ 
     //do something 
    } 

    return shareBtwnCtrlrService; 
} 
}; 

angular.module('app.product') 
.factory('productService', function() { 
    var productService = this; 

    productService.value = function(){ 
     //do something 
    } 

    return productService; 
} 
}; 

现在使用的coreproduct模块的服务,我们创建app模块既包括在它

angular.module('app', ['app.product', 'app.core']) 
.controller('ProductController', ['shareBtwnCtrlrService', 'productService', function (shareBtwnCtrlrService, productService) { 
    // ...do something 
}]); 
相关问题