gpt4 book ai didi

angularjs - 错误 : [ng:areq] Argument 'Controller' is not a function, 未定义

转载 作者:行者123 更新时间:2023-12-02 06:00:28 27 4
gpt4 key购买 nike

在为对话框实现模式时,我得到了错误:[ng:areq] Argument 'ModalInstanceCtrl' is not a function, got undefined。我在同一个 .js 文件中有两个 Controller 。错误显示第二个 Controller 的名称。

ng-app 包含在主 html 文件中。

<div ng-app = "LoginApp">
<div ng-view>
<!-- partial will go here -->
</div>
</div>

Angular 路线

var LoginApp = angular.module('LoginApp', ['ngResource', 'ngRoute', 'ui.bootstrap'])
LoginApp.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/', {controller: LoginCtrl, templateUrl: '/js/templates/login.html'})
.otherwise({redirectTo: '/'})
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
})

LoginCtrl.js文件

'use strict'

var LoginCtrl = ['$scope', '$modal', '$log', function($scope, $modal, $log) {
$scope.authenticate = function(){

var loginModal = $modal.open({
templateUrl: 'login-modal.html',
controller: 'ModalInstanceCtrl',
resolve: {
modalData: function () {
return {
user: {
name: '',
password: ''
}
};
}
}
});

loginModal.result.then(function (user) {
$log.info("My name is:" + user.name);
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
}
}];

var ModalInstanceCtrl = ['$scope', '$modalInstance', 'modalData', function($scope, $modalInstance, modalData){

}];

LoginCtrl.js 文件中,LoginCtrl 没有出现这个错误,但是ModalInstanceCtrl 的声明是未定义的。谁能告诉我为什么会这样。

最佳答案

$modal.open() 的参数中,更改为:

...
controller: 'ModalInstanceCtrl',
...

为此:

...
controller: ModalInstanceCtrl,
...

注意, Controller 名称没有引号,因为您希望 AngularJS 使用 ModalInstanceCtrl 变量,而不是使用 angular 注册的 Controller 。

或者,如果你想保留引号,你可以用 AngularJS 注册 ModalInstanceCtrl,像这样:

LoginApp.controller('ModalInstanceCtrl',  ['$scope', '$modalInstance', 'modalData', function($scope, $modalInstance, modalData){
...
}]);

两种方式都行。

关于angularjs - 错误 : [ng:areq] Argument 'Controller' is not a function, 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26835846/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com