如何在$ mdDialog模式控制器中访问父控制器数据

时间:2019-05-06 06:33:57

标签: angularjs this mddialog

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 :(得分:0)

  

我想在模式控制器中访问父控制器数据。

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到控制器中。如果bindToControllertrue,则会将它们复制到控制器。
  •   
  • bindToController- bool :将本地人绑定到控制器,而不是传入本地人。
  •   

有关更多信息,请参见