Javascript 使用$mdDialog显示时,视图中的Angular 1.5$ctrl为空对象

Javascript 使用$mdDialog显示时,视图中的Angular 1.5$ctrl为空对象,javascript,angularjs,angular-material,angular-components,mddialog,Javascript,Angularjs,Angular Material,Angular Components,Mddialog,我使用的是angular 1.6.2和angular material 1.1.4。以下是我用于$mdDialog的组件: class CommentReplySettingsController { /** @ngInject */ constructor($mdDialog, $log) { this.$mdDialog = $mdDialog; $log.log(this.settingType); } hideDialog() { this.$m

我使用的是angular 1.6.2和angular material 1.1.4。以下是我用于$mdDialog的组件:

class CommentReplySettingsController {
  /** @ngInject */
  constructor($mdDialog, $log) {
    this.$mdDialog = $mdDialog;
    $log.log(this.settingType);
  }

  hideDialog() {
    this.$mdDialog.hide();
  }

  cancelDialog() {
    this.$mdDialog.cancel();
  }
}

export const commentReplySettings = {
  template: require('./comment-reply-settings.html'),
  bindings: {
    settingType: '='
  },
  controller: CommentReplySettingsController
};
  showCommentReplySettingDialog(ev) {
    const _this = this;
    this.settingType = 'global';
    this.$mdDialog.show({
      template: '<app.user.comment-reply-settings class="md-dialog-container" setting-type="$ctrl.settingType"></app.user.comment-reply-settings>',
      parent: angular.element(this.$document.body),
      autoWrap: false,
      scope: _this.$scope,
      preserveScope: true,
      targetEvent: ev,
      clickOutsideToClose: true,
      fullscreen: true
    });
  }
将上述内容转换为如下组件:

import angular from 'angular';

import {commentReplySettings} from './comment-reply-settings';

export const commentReplySettingsModule = 'commentReplySettings';

angular
  .module(commentReplySettingsModule, [])
  .component('app.user.commentReplySettings', commentReplySettings);
这里是另一个组件的控制器函数,我在$mdDialog中使用上述组件:

class CommentReplySettingsController {
  /** @ngInject */
  constructor($mdDialog, $log) {
    this.$mdDialog = $mdDialog;
    $log.log(this.settingType);
  }

  hideDialog() {
    this.$mdDialog.hide();
  }

  cancelDialog() {
    this.$mdDialog.cancel();
  }
}

export const commentReplySettings = {
  template: require('./comment-reply-settings.html'),
  bindings: {
    settingType: '='
  },
  controller: CommentReplySettingsController
};
  showCommentReplySettingDialog(ev) {
    const _this = this;
    this.settingType = 'global';
    this.$mdDialog.show({
      template: '<app.user.comment-reply-settings class="md-dialog-container" setting-type="$ctrl.settingType"></app.user.comment-reply-settings>',
      parent: angular.element(this.$document.body),
      autoWrap: false,
      scope: _this.$scope,
      preserveScope: true,
      targetEvent: ev,
      clickOutsideToClose: true,
      fullscreen: true
    });
  }
showCommentReplySettingDialog(ev){
常数this=这个;
this.settingType='global';
这是.mdDialog.show({
模板:'

edit2:问题已经解决,我在CommentReplySettings对话框视图中使用了
md truncate
指令。这就像
Comment Response{{{$ctrl.settingType}}Settings
一样。当我将其更改为
Comment Response{{$ctrl.settingType}}设置
,一切正常。请参阅。

showCommentReplySettingDialog(ev){
this.settingType='global';
这是.mdDialog.show({
模板:“”,
父元素:angular.element(此.$document.body),
自动换行:false,
范围:这个范围,
范围:对,,
目标事件:ev,
单击外部以关闭:true,
全屏:对,

controllerAs:'ctrl'发现了问题,我在CommentReplySettings对话框视图中使用了
md truncate
。这就像
CommentResponse{{{$ctrl.settingType}}设置一样
。当我将其更改为
CommentResponse{{$ctrl.settingType}}时设置
,一切都很完美。请参见。

能否共享
评论回复设置
函数?发现问题后,我在对话框视图中使用了md truncate。
评论回复{{{$ctrl.settingType}}设置
。一旦我将其更改为
评论回复{{$ctrl.settingType}}设置
,一切正常。请参阅。感谢您的帮助。