javascript - 从服务内的另一个 js 函数调用公共(public)方法

标签 javascript angularjs

我创建了自定义服务

(function () {
    "use strict";

    angular
        .module("common.services")        
        .factory("redirectService",
                ["$q", "$location", 
                 redirectService])
        .config(function ($httpProvider) {
             $httpProvider.interceptors.push('redirectService');
        });

    function redirectService($q, $location){
       ...
       var redirect = function() {
            ...
        };

        return {           
            doRedirect: redirect
        };
     }

在我注入(inject)此 redirectService 的其他 Controller 中,我正在尝试调用此 publish doRedirect 方法

angular
    .module("myModule")
    .controller("MyController",
                 ["$scope",  
                 "redirectService"                  
                  MyController]);

    function MyController(redirectService){
      vm.doClick = function() {  
        redirectService.doRedirect();
      }
    }

这里我在调用 doRedirect 方法时遇到错误

Error: redirectService.doRedirect is not a function

最佳答案

MyController 的依赖数组和函数参数中的参数数量不平衡

改变

function MyController(redirectService){

function MyController($scope, redirectService){

关于javascript - 从服务内的另一个 js 函数调用公共(public)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37746842/

相关文章:

javascript - 两个输入数字字段的组合最大值和最小值

javascript - 如何使用 AngularJS 显示特定数量的 li?

javascript - 应用程序模块不可用、拼写错误或忘记加载 - 在 grunt 构建之后

javascript - 使用 javascript 启用和禁用复选框

javascript - 移动div移动整个页面

javascript - 使用粒子插件和背景图像

javascript - angularjs 点击标签文字消失

javascript - 即使 ng-model 存在于 AngularJS 中,ng-change 也不起作用

javascript - 发出函数作为参数

angularjs - 奇怪... Angular Proxy 无法正常工作