如何调用Controller?

时间:2014-05-05 17:52:57

标签: angularjs angular-ui-bootstrap

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) {

};

为什么会这样?

4 个答案:

答案 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作为控制器名称。这样可以正常工作。