我正在尝试连接一个Angular Bootstrap模式(弹出窗口),但是它给了我" templateUrl"未找到错误或此错误:错误:[ng:areq] http://errors.angularjs.org/1.3.15/ng/areq?p0=ModalInstanceCtrl&p1=not%20a%20function%2C%20got%20undefined
我只想要一些理论上的建议来解释为什么会这样。我已经尝试了很多东西:它们都已正确连接,所有拼写匹配等等。
$ modal也在控制器中用于其他功能,所以它都被注入。
答案 0 :(得分:2)
Angular Documents提供了一个建议,当您收到此错误时,可能会将控制器注入另一个控制器。这正是我试图添加模态作为他们的盒子解决方案所发生的事情:
angular.module('ui.bootstrap.demo').controller('ModalDemoCtrl', function ($scope, $modal, $log) {
$scope.items = ['item1', 'item2', 'item3'];
$scope.animationsEnabled = true;
$scope.open = function (size) {
var modalInstance = $modal.open({
animation: $scope.animationsEnabled,
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl',
size: size,
resolve: {
items: function () {
return $scope.items;
}
}
});
modalInstance.result.then(function (selectedItem) {
$scope.selected = selectedItem;
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
$scope.toggleAnimation = function () {
$scope.animationsEnabled = !$scope.animationsEnabled;
};
});
控制器:'ModalInstanceCtrl'如果要将其添加到现有控制器中,必须从模态函数中删除,否则它将全部转到......你知道在哪里。
答案 1 :(得分:0)
可以像模块上不存在的控制器一样简单。
我忘了添加模态控制器的代码:(当我第一次在我的项目中尝试它时
这个控制器在我的项目中大约有3个控制器(确保你使用"控制器 AS cntlr"样式)所以嵌入对我来说不是问题。
angular.module('ui.bootstrap.demo').controller('ModalInstanceCtrl', function ($scope, $uibModalInstance, items) {
$scope.items = items;
$scope.selected = {
item: $scope.items[0]
};
$scope.ok = function () {
$uibModalInstance.close($scope.selected.item);
};
$scope.cancel = function () {
$uibModalInstance.dismiss('cancel');
};
});