如果从服务打开模态,则出现未定义的方法错误

Getting undefined method error if open modal from service

我已将 bootstrap 模式放入服务中,我想从那里打开它。 但是我在 firebug 中遇到错误。该代码仍然可以正常工作,但 firebug

中存在错误

我有这样的服务

'use strict';

angular.module('test')
    .factory('commonService', [
        '$http',
        '$log',
        '$modal',
        '$q',
        function ($http, $log, $modal, $q) {
            var api_url = "/api/";
            var
                commonService = {

                    self: this,

                    open: function (modelName, templateUrl) {

                        var modalInstance = $modal.open({
                            templateUrl: templateUrl,
                            controller: 'ModalInstanceCtrl',
                            resolve: {
                                modelName: function () {
                                    return modelName;
                                }
                            }
                        });

                        modalInstance.result.then(function (result) {
                            console.log(result);
                        }, function () {
                            $log.info('Modal dismissed at: ' + new Date());
                        });
                    }//

                };

            return commonService;
        }])
;

这是我的控制器

$scope.openModal = function (modelName) {
    commonService.open(modelName, 'test.html').then(function (result) {
        console.log('res')

    }, function (error) {
        console.log(error);
    })

};

我在模板中是这样打开的

ng-click="openModal('User')"

问题是我在 firebug

中收到此错误
TypeError: commonService.open(...) is undefined


commonService.open(modelName).then(function (result) {

但我的模式仍然可以正常打开内容

常用service.open方法应该returnmodalInstance.result。这里 modalInstance.result 是一个承诺,您可以在控制器中解决它。