我有一个 Controller AddPrice,我使用 $uibModal.open 调用并传入 Controller ,从价格列表屏幕将其作为弹出窗口调用。 addPrice.html 中未定义 Controller
addPrice.html
<div>
<form>
<!-- contains UI controls but controller is not mentioned in this page -->
</form>
</div>
addPriceController.js
(function () {
'use strict';
var controllerId = 'addPriceController';
angular.module('myApp').controller(controllerId, [
'$scope',
'$q',
'$uibModalInstance',
addPriceController]);
function addPriceController(
$scope,
$q,
modalInstance) {
}
}) ();
上述场景运行良好。
现在我想在不同的 ManagePrice.html 屏幕中重复使用 addPrice.html 作为“页内”编辑而不是弹出窗口。
我在 ManagePrice.html 中添加了以下内容:
<div ng-include src="'addPrice.html'"
ng-controller="addPriceController">
但我不断收到以下错误:
angular.js:15018 Error: [$injector:unpr] Unknown provider: $uibModalInstanceProvider <- $uibModalInstance <- addPriceController
在这种情况下如何注入(inject) $uibModalInstance?
或者
Angular JS 不允许这样做吗?
最佳答案
$uibModalInstance
对象是由 $uibModal
服务实例化的 Controller 的可注入(inject)对象。它不会注入(inject)到 $compile 服务实例化的 Controller 中。
来自文档:
$uibModal's open function
options parameter
controller
(Type:function|string|array
, Example:MyModalController
) - A controller for the modal instance, either a controller name as a string, or an inline controller function, optionally wrapped in array notation for dependency injection. Allows the controller-as syntax. Has a special$uibModalInstance
injectable to access the modal instance.
欲了解更多信息,请参阅
关于javascript - 收到错误 [$injector :unpr] Unknown provider: $uibModalInstanceProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58588318/