2014-05-05 48 views
0
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) { 

}; 

为什么出现这种情况?

回答

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' 
}); 
+0

谢谢!现在我知道这个问题! – nofear87

+0

不客气:) – tasseKATT

0

这是d efining你的控制器类:

var ModalCtrl = function ($scope, $modalInstance) { 

}; 

您需要创建类的实例:我以为你是因为你的控制器名称值需要加引号的问题

var instance = new ModalCtrl(args) 
2

-

var modalInstance = $modal.open({ 
    templateUrl: 'views/modals/addDevice.html', 
    controller: 'ModalCtrl' // <-- this needs to be in quotes 
}); 
0

使用cotes作为控制器名称。这将工作正常。