Область действия ngDialog в контроллере как сценарий

0

У меня есть медиа-список, когда я нажимаю на элемент, который я хочу открыть ngDialog и передаю модель в ngDialog, я прочитал документацию и блог, но все они используют $ scope для передачи модели или данных, а не контроллера как (vm). как я могу использовать vm для передачи данных контроллеру ngDialog и как я могу вызвать родительский vm ($ parent. $ scope) из контроллера ngDiloag в vm (Controller as) case

вот мой код (упрощенная версия)

(function () {
    'use strict';
    angular
        .module('app.media')
        .controller('mediaController', Controller);

    Controller.$inject = ['$filter', 'ngTableParams', '$rootScope', '$http', '$log', '$uibModal', 'ngDialog', 'toaster', 'mediaDataService'];

    function Controller($filter, ngTableParams, $rootScope, $http, $log, $uibModal, ngDialog, toaster, mediaDataService) {
        var vm = this;

        vm.media = {};


        activate();



        function activate() {

            vm.updateMedia = function () {
                mediaDataService.updateMedia(vm.media).then(function (res) {
                    toaster.pop('success', 'ویرایش فایل با موفقیت انجام شد', 'ویرایش فایل')
                })
            }


            vm.openUpdateDialog = function (media) {
                //i want to use vm.media in opening dialog
                vm.media = media;
                ngDialog.open({
                    template: 'media/edit'
                    , className: 'ngdialog-theme-default'
                    , controller: 'updateMediaController',

                    //i had used data to pass data to new controller and used ngDialogData in my opening template to access media , 
                    //the probelm with this case is i cant access parrent controller(the controller that is openin dialog) from DngDialog
                    //opened Controller(because i want to run parrent controller  updateMedia function  when user click update in opened dialog)
                    //**commented out - not usefull **//    
                    //data:media
                })
            }

        }
    }
})();

любое предложение? Спасибо

Теги:
ng-dialog

1 ответ

1
Лучший ответ

попробуй это:

Если вы используете контроллер с отдельной службой $ scope, этот объект будет передан в $ scope. $ Parent param: см. Это для получения дополнительной информации

 ngDialog.open({
                template: 'media/edit',
                 className: 'ngdialog-theme-default',
                 controller: 'updateMediaController',
                 scope:$scope
            })
  • 0
    я не использую $ scope в моем контроллере parrent.
  • 0
    ты тестируешь это ???
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню