我正在尝试从控制器中打开模式。我希望模式具有它自己的控制器,该控制器已在$ uibModal.open中指定。

parentController.js

$uibModal.open({
        templateUrl: 'modal.html',
        controller: 'ModalController',
        scope: $scope,
        backdrop:'static',
        keyboard: false,
        size: 'md'
    });


modalController.js

angular.module('fidoApp.import').controller('ModalController',['$scope', '$uibModalInstance',
function ($scope, $uibModalInstance) {
    $scope.label = "from ModalController";
}]);


modal.html

<div>
    {{label}}
</div>


app.js

var fidoApp = angular.module('fidoApp', [
'ngRoute',
'ui.bootstrap',
'ngResource',
'ngCookies',
'ngAnimate',
'checklist-model',
'restangular',
'fidoApp.import',
'fidoApp.login',
'fidoServices',
'taximportServices',
'utilServices',
'errorServices',
'financialInstitutionsFilter',
'authenticationService',
'userService'


]);

在浏览器中运行此错误消息:

Error: [ng:areq] Argument 'ModalController' is not a function, got undefined


我要去哪里错了?

最佳答案

正如Aleksey在评论中提到的那样,我的脚本顺序是错误的。 ModalController脚本标签位于ParentController脚本标签下方。因此,在ParentController中对ModalController的引用未定义。

我更改了脚本标记的顺序,并将ModalController脚本标记放在ParentController脚本标记之前,并且一切正常。

10-06 00:17