javascript - AngularJS 中向 Controller 注入(inject)服务失败

标签 javascript angularjs

我的代码是这样的

Controller.js
var errorMessage = { MessageHeader: "Error", Message: "Something went wrong. Please try again later." };
    angular.module('RateRequestApp.controllers', []).controller('ReadOnlyController', [
    '$scope',  'updateTruckNoService', 'messageModalService', '$modal',
    function ($scope,  updateTruckNoService, messageModalService, $modal) {

        messageModalService.showMessageModal(errorMessage);
    }
]);
Services.js
angular.module('RateRequestApp.services').factory('messageModalService', [ '$modal', messageModalService]);
function messageModalService($modal) {
    function showMessageModal(response) {
        var modalInstance = $modal.open({
            templateUrl: 'MessageModal.html',
            controller: 'ModalInstanceCtrl',
            resolve: {
                items: function () {
                    return response;
                }
            }
        });
    };
}

App.JS
angular.module('RateRequestApp', [
   'RateRequestApp.services',
   'RateRequestApp.controllers',
   'ui.bootstrap',
   'angular-loading-bar'
]);

对我来说一切看起来都很好,但这会引发错误

TypeError: Cannot read property 'showMessageModal' of undefined

在行

  messageModalService.showMessageModal(errorMessage);

最佳答案

showMessageModal函数刚刚在 messageModalService 中定义功能。您不会归还它,因此没有人可以访问它。

事实上,您没有退回任何东西,因此您的工厂正在生产 undefined当它被调用时。

function messageModalService($modal) {
    function showMessageModal(response) {
        // ...
    }

    return {showMessageModal: showMessageModal};
}

或者你也可以这样做:

function messageModalService($modal) {
    return {
        showMessageModal: function (response) {
            // ...
        }
    };
}

关于javascript - AngularJS 中向 Controller 注入(inject)服务失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27597990/

相关文章:

javascript - Meteor 中的复合集合

javascript - 绑定(bind)范围变量(数组)以下拉焦点

javascript - 没有秒的Angularjs时钟

javascript - Jquery DatePicker 设置为不自动打开

javascript - 已证明大规模可靠的所见即所得编辑器有哪些?

javascript - 修复 if 语句以停止移动

javascript - 在 ng-model 中动态创建属性

javascript - React 中的受控选择未设置 defaultValue

javascript - 动态更改帖子的内容(CMS)

django - 如何使用 XHR 通过 POST 将数据作为键值对而不是字符串发送