Angularjs 在另一个控制器中使用一个控制器
该示例使用ModalDemoCtrl控制器内的ModalInstanceCtrl实现,如下所示:Angularjs 在另一个控制器中使用一个控制器,angularjs,angular-ui,angular-ui-bootstrap,Angularjs,Angular Ui,Angular Ui Bootstrap,该示例使用ModalDemoCtrl控制器内的ModalInstanceCtrl实现,如下所示: var ModalDemoCtrl = function ($scope, $modal, $log) { $scope.open = function () { var modalInstance = $modal.open({ ... controller: ModalInstanceCtrl, ... }); ... }; }
var ModalDemoCtrl = function ($scope, $modal, $log) {
$scope.open = function () {
var modalInstance = $modal.open({
...
controller: ModalInstanceCtrl,
...
});
...
};
};
var ModalInstanceCtrl = function ($scope, $modalInstance, items) {
...
$scope.ok = function () {
$modalInstance.close($scope.selected.item);
};
};
app.controller('ModalInstanceCtrl', ['$scope', '$modal', '$log',
function ($scope, $modalInstance, items) {
...
$scope.ok = function () {
$modalInstance.close($scope.selected.item);
};
}]);
app.controller('ModalDemoCtrl', ['$scope', '$modal', '$log', 'ModalInstanceCtrl',
function ($scope, $modal, $log, ModalInstanceCtrl) {
$scope.open = function () {
var modalInstance = $modal.open({
...
controller: ModalInstanceCtrl,
...
});
...
};
}]);
尝试此方法时,将控制器注册为angular,如下所示:
var ModalDemoCtrl = function ($scope, $modal, $log) {
$scope.open = function () {
var modalInstance = $modal.open({
...
controller: ModalInstanceCtrl,
...
});
...
};
};
var ModalInstanceCtrl = function ($scope, $modalInstance, items) {
...
$scope.ok = function () {
$modalInstance.close($scope.selected.item);
};
};
app.controller('ModalInstanceCtrl', ['$scope', '$modal', '$log',
function ($scope, $modalInstance, items) {
...
$scope.ok = function () {
$modalInstance.close($scope.selected.item);
};
}]);
app.controller('ModalDemoCtrl', ['$scope', '$modal', '$log', 'ModalInstanceCtrl',
function ($scope, $modal, $log, ModalInstanceCtrl) {
$scope.open = function () {
var modalInstance = $modal.open({
...
controller: ModalInstanceCtrl,
...
});
...
};
}]);
我得到以下错误:
Error: Unknown provider: ModalInstanceCtrlProvider <- ModalInstanceCtrl
是否可以在angular中嵌套这样的控制器?您不需要将ModelInstanceCtrl注入您的ModalDemoCtrl。控制器定义应为
app.controller('ModalDemoCtrl', ['$scope', '$modal', '$log',
function ($scope, $modal, $log) {
没有这个,它也应该能工作。如果它不尝试
var modalInstance = $modal.open({
...
controller: 'ModalInstanceCtrl',
...
});
您不需要将ModelInstanceCtrl注入您的ModalDemoCtrl。控制器定义应为
app.controller('ModalDemoCtrl', ['$scope', '$modal', '$log',
function ($scope, $modal, $log) {
没有这个,它也应该能工作。如果它不尝试
var modalInstance = $modal.open({
...
controller: 'ModalInstanceCtrl',
...
});