Как получить доступ к данным родительского контроллера в модальном контроллере $ mdDialog - PullRequest
1 голос
/ 06 мая 2019

Angularjs $ mdDialog не открывает модал при прохождении этого. Почему?

Я пытаюсь получить доступ к данным родительского контроллера в дочернем контроллере. Данные передаются, но модал не открывается. Когда я печатаю ответ, он показывает

Невозможно прочитать свойство 'createDocumentFragment' из неопределенного

var ctrl = this;
ctrl.add_user_popup = function(data){

    $mdDialog.show({
        templateUrl: 'userManagement/addUserPopup.html',
        controller: 'addUserPopup_controller',
        controllerAs: 'umpctrl',
        clickOutsideToClose: true,
        dataToEdit: data,
        escapeToClose: true,
        parent: ctrl  //When I comment this line modal opens
    }).then(function(response){
        console.log('add_user_popup success',response);
    }, function(res){
        console.log('add_user_popup failed',response);
    })
}

1 Ответ

0 голосов
/ 06 мая 2019

Я хочу получить доступ к данным родительского контроллера в модальном контроллере.

var ctrl = this;
ctrl.add_user_popup = function(data){
    return $mdDialog.show({
        templateUrl: 'userManagement/addUserPopup.html',
        controller: 'addUserPopup_controller',
        controllerAs: 'umpctrl',
        clickOutsideToClose: true,
        ̶d̶a̶t̶a̶T̶o̶E̶d̶i̶t̶:̶ ̶d̶a̶t̶a̶,̶
        locals: { dataToEdit: data },
        bindToController: true,
        escapeToClose: true,
        ̶p̶a̶r̶e̶n̶t̶:̶ ̶c̶t̶r̶l̶ ̶ ̶/̶/̶W̶h̶e̶n̶ ̶I̶ ̶c̶o̶m̶m̶e̶n̶t̶ ̶t̶h̶i̶s̶ ̶l̶i̶n̶e̶ ̶m̶o̶d̶a̶l̶ ̶o̶p̶e̶n̶s̶
    }).then(function(result){
        console.log('add_user_popup success',result);
        return result;
    }, function(reason){
        console.log('add_user_popup dismissed',reason);
        throw reason;
    })
}

Используйте свойство locals объекта параметров диалога.

ИзДокументы:

  • locals - {object =} : объект, содержащий пары ключ / значение.Ключи будут использоваться как имена значений для ввода в контроллер.Например, locals: {three: 3} будет вводить three в контроллер со значением 3.Если bindToController равно true, они будут скопированы на контроллер.
  • bindToController - bool : привязать локальные данные к контроллеру, а не передавать их внутрь.

Для получения дополнительной информации см.

...