var modalInstance = $modal.open({
templateUrl: 'views/modals/addDevice.html',
controller: ModalCtrl
});
modalInstance.result.then(function (newDevice) {
});
我将以这种方式实现它:
app.controller("ModalCtrl", function( $scope, $modalInstance ) {
});
但只接受这种方式:
var ModalCtrl = function ($scope, $modalInstance) {
};
为什么会这样?
答案 0 :(得分:3)
以下列方式注册控制器时:
app.controller("ModalCtrl", function( $scope, $modalInstance ) {
});
您尚未声明ModalCtrl
变量,因此在以下情况中ModalCtrl
将是未定义的:
var modalInstance = $modal.open({
templateUrl: 'views/modals/addDevice.html',
controller: ModalCtrl
});
您可以将控制器名称改为字符串:
var modalInstance = $modal.open({
templateUrl: 'views/modals/addDevice.html',
controller: 'ModalCtrl'
});
答案 1 :(得分:2)
我认为您遇到了问题,因为您的控制器名称的值必须在引号中 -
var modalInstance = $modal.open({
templateUrl: 'views/modals/addDevice.html',
controller: 'ModalCtrl' // <-- this needs to be in quotes
});
答案 2 :(得分:0)
这是定义您的控制器类:
var ModalCtrl = function ($scope, $modalInstance) {
};
您需要创建该类的实例:
var instance = new ModalCtrl(args)
答案 3 :(得分:0)
使用cotes作为控制器名称。这样可以正常工作。