我有一个AngularJS工厂,我试图用来创建模态。但是,当我尝试在resolve
我的模态实例中使用$modal
方法时,控制器会获得一个未解析的提供者。
以下是我从控制器调用工厂的方法:
var modalOptions = {
template: 'app/common/modalwindow.html',
data: data
};
modalFactory.openModal(modalOptions);
我的模态工厂现在很简单,它只有一个开放的模态方法:
(function() {
'use strict';
var factoryId = 'modalFactory';
angular.module('app').factory(factoryId, ['$modal', modalFactory]);
function modalFactory($modal) {
var factory = {
openModal: openModal
}
return factory;
function openModal(data) {
$modal.open({
templateUrl: data.template,
controller: 'modalInstanceCtrl',
resolve: {
modalData: function () {
return data.data;
}
}
});
}
}
})();
然而,当我调用modalInstanceCtrl
时会抛出错误。这是我的modalInstanceCtrl
(function () {
'use strict';
var controllerId = 'modalInstanceCtrl';
angular.module('app').controller(controllerId, ['common', 'modalData', modalInstanceCtrl]);
function modalInstanceCtrl(common, modalData) {
var getLogFn = common.logger.getLogFn;
var log = getLogFn(controllerId);
log(modalData);
};
})();
它抛出的错误是:
未知提供者:modalDataProvider< - modalData< - modalInstanceCtrl
我认为resolve
中的$modal
会处理此注入。我在这里假设错了吗?