我有一个谷歌素材对话框,我在那里与用户互动。我想在对话框中注入一个工厂并在那里使用它。有没有办法做到这一点?
我尝试将工厂作为局部变量传递。
有什么建议吗?
编辑---------
这是我用来处理对话框的控制器。我将工厂输出到控制台,功能都在那里。不确定为什么叫他们什么都不做。
function DocumentDialogController($mdDialog, locals, chartFactory)
{
var vm = vm || this;
vm.thisItem = locals.thisItem;
vm.cancel = cancel;
vm.acceptChanges = acceptChanges;
vm.selectImage = selectImage;
function cancel(){
$mdDialog.cancel();
};
function acceptChanges(desc) {
$mdDialog.hide(desc);
};
function selectImage(imageName) {
vm.thisItem.imageObj.data.src=imageName;
};
}
答案 0 :(得分:0)
将控制器分配给对话框并将工厂注入控制器。
执行以下操作以创建对话框。请注意,controller属性中的字符串是您要使用的控制器的名称。
$mdDialog.show({
templateUrl: 'partials/example.template.html',
targetEvent: event,
controller: 'ExampleCtrl',
controllerAs: 'vm'
});
创建工厂并将其注入控制器,就像使用任何其他控制器一样。
(function() {
'use strict';
angular
.module('example')
.controller('ExampleCtrl', ExampleCtrl);
function ExampleCtrl(ExampleFactory) {
var vm = this;
// you can now use the injected ExampleFactory
}
ExampleCtrl.$inject = ['ExampleFactory'];
})();