2016-07-02 6 views
0

У меня есть диалоговое окно материала Google, в котором я взаимодействую с пользователем. Я хочу ввести завод в диалог и использовать его там. Есть ли способ сделать это?Использование фабрики в md.dialog

Я пробовал передать фабрику в качестве локальной переменной.

Любые предложения?

Редактировать ---------

Вот мой контроллер, который я использую для обработки диалоговых окон. Я выводю завод на консоль, и все функции там есть. Не уверен, почему их зовут ничего не делает.

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

Назначьте контроллер в диалоговом окне и введите завод в контроллер.

Чтобы создать диалог, сделайте что-нибудь вроде ниже. Обратите внимание, что строка в свойстве 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']; 
})(); 
+0

Можете ли вы создать пример кода, на который я могу посмотреть. – ScottL

+0

Я обновил ответ. Похоже, что первоначальная инъекция действительно работала, но фабрика представляет собой повторное вложение какого-то рода –