AngularJS UIB模式无法调用模式控制器

时间:2018-10-23 08:09:14

标签: javascript angularjs angular-ui-bootstrap

我正在尝试从控制器中打开模式。我希望模式具有它自己的控制器,该控制器已在$ 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

我要去哪里错了?

1 个答案:

答案 0 :(得分:1)

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

我更改了脚本标签的顺序,并将ModalController脚本标签放在ParentController脚本标签之前,一切开始正常运行。