Javascript 使用$mdDialog显示时,视图中的Angular 1.5$ctrl为空对象
我使用的是angular 1.6.2和angular material 1.1.4。以下是我用于$mdDialog的组件: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
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}}设置
,一切正常。请参阅。感谢您的帮助。